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