我注意到,每当我调用adapter.notifyItemChanged(row);
时,都会显示滚动条。
有什么办法可以避免这种行为?我不希望在adapter.notifyItemChanged(row);
期间不显示滚动条。下面的屏幕截图是调用notifyItemChanged(row)
时滚动条的显示方式。
但是,当实际手势滚动发生时,我仍然希望滚动条可见。
答案 0 :(得分:0)
添加此行:android:scrollbars="none"
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
>
</android.support.v7.widget.RecyclerView>
对于临时隐形,请尝试以下操作:
recyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
adapter.notifyItemChanged(row);
recyclerView.setOverScrollMode(View.OVER_SCROLL_ALWAYS);
答案 1 :(得分:0)
在调用notifyItemChanged之前将滚动条大小设置为0,然后将其恢复:
int size = recyclerView.getScrollBarSize();
recyclerView.setScrollBarSize(0);
adapter.notifyItemChanged(row);
recyclerView.setScrollBarSize(size);
答案 2 :(得分:0)
这就是我达到期望要求的方式。使用post
是解决方案的关键。
recyclerView.setVerticalScrollBarEnabled(false);
try {
// Do something.
} finally {
recyclerView.post(new Runnable() {
@Override
public void run() {
// Not sure whether if check is necessary.
if (recyclerView != null) {
recyclerView.setVerticalScrollBarEnabled(true);
}
}
});
}