嘿,我做了一个自定义视图组扩展相对布局和重写onTouchEvent(),并始终在onTouchEvent()返回true。我将这个自定义视图组作为我的listview的项目布局。我还为listview添加onItemClick监听器。但我无法接收我的listview的onItemClick事件!有人能帮助我吗?Android Listview不会收到onItemClick与自定义ViewGroup
非常感谢!
嘿,我做了一个自定义视图组扩展相对布局和重写onTouchEvent(),并始终在onTouchEvent()返回true。我将这个自定义视图组作为我的listview的项目布局。我还为listview添加onItemClick监听器。但我无法接收我的listview的onItemClick事件!有人能帮助我吗?Android Listview不会收到onItemClick与自定义ViewGroup
非常感谢!
如果您在onTouchEvent()
中返回true,则会处理该事件,因此不会冒泡到ListView。尝试返回false。
只使用onitemClick事件就够我想只要你的问题而言
不,我应该在MotionEvent down和MotionEvent时做一些工作。 – DarkNeo
粘贴代码 – Anirudh
@覆盖 公共布尔的onTouchEvent(MotionEvent事件){ 开关(event.getAction()){ 情况MotionEvent.ACTION_DOWN: doMyWork(); break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: endMywork(); break; 默认值: break; } return super.onTouchEvent(event); } – DarkNeo
只是difine onitemclick在适配器类getView(...),我认为它会为你
公共查看getView工作(最终诠释的立场,观点convertView,ViewGroup以及母公司){
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_row, null);
vi.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
}
});
我认为这可以解决这个问题。谢谢! – DarkNeo
的问题是,你总是从你的ViewGroup的onTouchEvent(MotionEvent)
方法返回true
。这意味着你的相对布局负责处理这个触摸事件。 阅读android文档以获取更多信息http://developer.android.com/training/gestures/viewgroup.html
如果我返回false,那么以后我无法在视图组中获得其他MotionEvent。如何解决这个问题?谢谢! – DarkNeo
如果你返回'super.onTouchEvent()',怎么样? – Jens
super.onTounchEvent()将在这种情况下返回false。视图组不会再收到ACTION_UP事件。 – DarkNeo