滚动RecyclerView时工具栏隐藏时的布局抖动

时间:2015-03-12 15:04:59

标签: android scroll android-viewpager android-recyclerview android-toolbar

enter image description here

嗨,我有一个工具栏,PageSlidingTab和ViewPager的布局。在ViewPager中,有一个包含RecyclerView的片段。我想滚动RecyclerView时隐藏工具栏。我通过添加以下代码实现了它:

 toolbar  = ((MyActivity)getActivity()).getToolbar();

    mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        int toolbarMarginOffset = 0;

        private int dp(int inPixels){
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, inPixels, getActivity().getResources().getDisplayMetrics());
        }



        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);


        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            toolbarMarginOffset += dy;
            if(toolbarMarginOffset>dp(56)){

                toolbarMarginOffset = dp(56);

            }

            if(toolbarMarginOffset<0){

                toolbarMarginOffset = 0;

            }


            ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)toolbar.getLayoutParams();

            params.topMargin = -1*toolbarMarginOffset;

            toolbar.setLayoutParams(params);


        }
    });

它按预期工作正常但滚动时工具栏隐藏时会闪烁(如图所示)。我知道它发生了因为布局调整大小。我该如何解决这个问题?请建议一个很好的解决方案。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我使用这个库Android-ObservableScrollView

解决了这个问题
相关问题