我有一个ListView。在单元格内部,我有一个自定义视图。 (你可以画画。)
绘图时,我关闭列表的滚动..
theListView.setOnTouchListener(new View.OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_MOVE)
{
if ( STATE.weAreDrawoning )
{
return true;
// so, do not forward and hence do not scroll the list
}
else
{
return false;
}
}
return false;
}
});
没关系。但奇怪的是,在自定义视图中上下触摸,仍然传递到列表并使其滚动。
public class AmazingCustomView extends View
{
blah
@Override
public boolean onTouchEvent(MotionEvent event)
{
blah
return true;
}
}
在自定义视图中注意onTouchEvent返回true(我也尝试过假!:))
但是动作事件似乎仍然传递给了什么?
是否还有另一个" on ... something"我在自定义视图中丢失了吗?对不起,Android和蹩脚的新手。谢谢!
PS,我试过打开"可点击"在自定义视图的xml上,没有帮助:O
-
我刚刚实现了ListView中的所有控件,比如按钮,仍然"传递滚动"
我担心上面用来关闭滚动的系统并不好。 :/
对于在Google上搜索的人。我发现在android listView上关闭滚动的唯一真实方式...
danosipov.com/?p=604
(别忘了单独关闭你的刷新)
答案 0 :(得分:1)
您可能需要覆盖onInterceptTouchEvent。这是一个奇怪的功能,文档在这里:http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent%28android.view.MotionEvent%29