Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 避免在调用notifyItemChanged时显示滚动条_Android - Fatal编程技术网

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);
            }
        }
    });
}