Android 避免在调用notifyItemChanged时显示滚动条
我注意到,无论何时调用Android 避免在调用notifyItemChanged时显示滚动条,android,Android,我注意到,无论何时调用adapter.notifyItemChanged(行),将显示滚动条 有没有办法避免这种行为?在adapter.notifyItemChanged(行)期间,我不希望显示滚动条。下面的屏幕截图显示了调用notifyItemChanged(row)时滚动条的显示方式 但是,当实际的手势滚动发生时,我仍然希望滚动条可见。添加这一行:android:scrollbars=“none” 在调用notifyItemChanged之前将滚动条大小设置为0,然后将其还原: int s
adapter.notifyItemChanged(行)代码>,将显示滚动条
有没有办法避免这种行为?在adapter.notifyItemChanged(行)期间,我不希望显示滚动条代码>。下面的屏幕截图显示了调用notifyItemChanged(row)
时滚动条的显示方式
但是,当实际的手势滚动发生时,我仍然希望滚动条可见。添加这一行:android:scrollbars=“none”
在调用notifyItemChanged之前将滚动条大小设置为0,然后将其还原:
int size = recyclerView.getScrollBarSize();
recyclerView.setScrollBarSize(0);
adapter.notifyItemChanged(row);
recyclerView.setScrollBarSize(size);
这就是我如何达到我想要的要求。拥有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);
}
}
});
}
但是,这也会导致在实际的手势滚动过程中滚动条不可见。@CheokYanCheng我编辑了我的答案,我不确定第二部分,但请尝试一下
int size = recyclerView.getScrollBarSize();
recyclerView.setScrollBarSize(0);
adapter.notifyItemChanged(row);
recyclerView.setScrollBarSize(size);
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);
}
}
});
}