暂时禁用 Android ListFragment 滚动?

Disable Android ListFragment scrolling temporarily?

是否可以使用 getListView() 方法将 ListFragment 设置为不滚动?

getListView().setScrollContainer(false); 无效。

编辑:

奇怪的行为。这应该会阻止列表,但不知何故,如果您反复触摸它,您仍然可以缓慢滚动它。

scrollView.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            return isBlockedScrollView;
        }
    });

如果您需要禁用 ListFragment 滚动(这不同于常规的ListView),可以使用此方法实现解决方案里面 onCreate:

getListView().setOnScrollListener(new AbsListView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {

                view.smoothScrollBy(0,0);
            }

            @Override
            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

                view.smoothScrollBy(0,0);
            }
        });

如果你想临时设置,只需要添加满足你需要的条件即可。