zoukankan      html  css  js  c++  java
  • android 根据滑动隐藏或显示导航 类似手机QQ好友个人信息

    //重写ScrollView
    
    
    public class NotifyingScrollView extends ScrollView {
         /**
         * @author Cyril Mottier
         */
        public interface OnScrollChangedListener {
            void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt);
        }
    
        private OnScrollChangedListener mOnScrollChangedListener;
    
        public NotifyingScrollView(Context context) {
            super(context);
        }
    
        public NotifyingScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public NotifyingScrollView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
        @Override
        protected void onScrollChanged(int l, int t, int oldl, int oldt) {
            super.onScrollChanged(l, t, oldl, oldt);
            if (mOnScrollChangedListener != null) {
                mOnScrollChangedListener.onScrollChanged(this, l, t, oldl, oldt);
            }
        }
    
        public void setOnScrollChangedListener(OnScrollChangedListener listener) {
            mOnScrollChangedListener = listener;
        }
    
    }
    View Code

    布局引用重写NotifyingScrollView控件

     <你的项目路径.NotifyingScrollView
                android:id="@id/sv_personal"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/layout_bg"
                android:scrollbars="none" >
        
     <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/layout_bg"
                    android:orientation="vertical" >
    你要显示的内容
    </LinearLayout>
            </你的项目路径.NotifyingScrollView>
    View Code

    activity使用引用

    NotifyingScrollView sv_personal=(NotifyingScrollView)findViewById(R.id.sv_personal);
    sv_personal.setOnScrollChangedListener(mOnScrollChangedListener);
    
    
    
    private NotifyingScrollView.OnScrollChangedListener mOnScrollChangedListener = new NotifyingScrollView.OnScrollChangedListener() {
    public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
    int Height=Utility.dip2px(context, 130);
    float ratio =Math.max(Math.min(1, t/Height), 0);
    //导航控件
    linar_top.setAlpha(ratio* 255);
    }
    };
    View Code

     int Height=Utility.dip2px(context, 130); 130为要滑动的高度

  • 相关阅读:
    js,js中使用正则表达式
    web开发中文件下载
    EL表达式
    Servlet Filter
    压缩文件 乱码问题(转载)
    MFC CopyDirectory
    SaveFileDialog
    Create Window
    CDateTimeCtrl 设置时间
    键值表
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/4209752.html
Copyright © 2011-2022 走看看