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为要滑动的高度

  • 相关阅读:
    node03
    node02
    node01
    Vue-router重修02
    Vue-router重修01
    Vue重修02
    VUE重修01
    利用表达式目录树进行实体映射
    C#托管堆和垃圾回收
    C# 异步锁
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/4209752.html
Copyright © 2011-2022 走看看