zoukankan      html  css  js  c++  java
  • Android 滑动RecyclerView时隐藏部分控件

    在使用RecyclerView控件时,上下拖动控件时的时候,需要实时的隐藏与显示部分控件,已到达很好的用户体验. 
      原理很简单,当RecyclerView拖动至最上层时显示控件,当RecyclerView.开始向下拖动时,隐藏控件,直接上代码: 
    定义两个动画:

    private AlphaAnimation mShowAnim, mHiddenAmin;//控件的显示和隐藏动画

    初始化:

    //控件显示的动画
    mShowAnim = new AlphaAnimation(0.0f, 1.0f);
    mShowAnim.setDuration(300);
    
    //控件隐藏的动画
    mHiddenAmin = new AlphaAnimation(1.0f, 0.0f);
    mHiddenAmin.setDuration(300);

    RecyclerView控件初始化:

    mRecyclerView = (RecyclerView) findViewById(R.id.e_custom_merchandise_activity_recyclerview);
    mRecyclerView.addOnScrollListener(new MyRecyclerViewScrollListener());

    定义滑动监听事件:

    //滑动监听
    private class MyRecyclerViewScrollListener extends RecyclerView.OnScrollListener {
        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
                int lastVisibleItem = manager.findLastCompletelyVisibleItemPosition();//获取最后一个完全显示的ItemPosition
                // 当不滚动时
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    // 判断是否滚动到顶部
                    if (lastVisibleItem == 0) {
                        mTextViewPersonalise.startAnimation(mShowAnim);
                        mTextViewPersonalise.setVisibility(View.VISIBLE);
                    }
                } else if (newState == RecyclerView.SCROLL_STATE_DRAGGING ) {//拖动中
                    if (mTextViewPersonalise.getVisibility() == View.VISIBLE) {
                        mTextViewPersonalise.startAnimation(mHiddenAmin);
                        mTextViewPersonalise.setVisibility(View.INVISIBLE);//注意此处不要使用View.GONE
                    }
                }
            }
        }

    代码很简单,原理也比较简单.就不上传效果图了!

  • 相关阅读:
    Android架构初探
    TinyPNG---一个压缩PNG的神站
    Android添加全屏启动画面
    如何唯一的标识一台Android设备?
    获取Android设备唯一标识码
    Android系统资源图标android.R.drawable
    Android中使用adb访问SQLite的方法
    Java 对字符串数据进行MD5/SHA1哈希散列运算
    关于Android中EditText自动获取焦点并弹出键盘的相关设置
    EditText自动换行显示内容
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9014047.html
Copyright © 2011-2022 走看看