我正在使用自定义适配器/自定义项目布局(2x TextViews和4x ImageButtons)创建列表视图,我希望能够长按列表项来执行某些操作,并且仍然可以按布局上的ImageButtons。
问题在于,如果我只有TextViews它可以工作并捕获Long按事件,只要我添加一个ImageButton,Long按事件就会停止工作。知道为什么会这样吗?
答案 0 :(得分:0)
当您在项目布局中添加可点击的视图(如按钮)时,它们会捕获点击事件并且不会冒泡到基础ListView
,为了解决这个问题,您可以将长点击监听器添加到项目中根布局。
所以不要在你的活动中这样做:
ListView lv = (ListView) findViewById(R.id.lv);
lv.setOnItemLongClickListener(listener);
您在适配器中执行此操作:
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.item, parent, false);
view.setLongClickable(true);
view.setOnLongClickListener(listener);
}