暂时禁用 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);
}
});
如果你想临时设置,只需要添加满足你需要的条件即可。
是否可以使用 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);
}
});
如果你想临时设置,只需要添加满足你需要的条件即可。