我有一个简单的布局,一个列表视图,以及两个用于过滤和排序选项的图标。当我点击两个选项中的任何一个时,我的布局位于列表视图上方,仅覆盖屏幕的60%,从而使得下面的列表视图部分可见。我想要实现的是禁用该列表视图的滚动,只要叠加层可见,列表视图项都不应该是可点击的。
我尝试使用
setEnabled(false)
setClickable(false)
列表视图上的但它没有任何区别。有什么其他方法可以实现这一目标。
答案 0 :(得分:1)
我建议叠加层将在整个屏幕上。 然后,您可以使用权重(垂直)线性布局包裹叠加层(以达到60%/ 40%比率)。在线性布局中,将当前叠加层设置为第一个子窗口,并将第二个窗口放置为阻止触摸事件的透明视图。这样您就不需要对列表视图进行任何修改。
答案 1 :(得分:0)
要禁用滚动,您可以使用 OnTouchListener()
template <typename T>
class Proletarian
{
public:
typename T::NESTED* tn;
Proletarian<T>()
{
typename T::NESTED* tNested = new typename T::NESTED;
std::cout << tNested->var1;
}
};
OR
listView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_MOVE) {
return true; // Indicates that this has been handled by you and will not be forwarded further.
}
return false;
}
});
要禁用单击,请在自定义ArrayAdapter中覆盖isEnabled方法,如下所示
listView.setScrollContainer(false);
答案 2 :(得分:0)
您可以使用它来禁用父滚动视图
parentview.requestDisallowInterceptTouchEvent(真);
如果叠加层可见。