我到处寻找解决方案,但我无法弄清楚如何实现它.我的行OnItemClickListener被禁用了ListView,因为我ImageButton在行布局中有一个接管焦点.我发现了很多问题,但没有一个问题让我到处都是.
我已经检查了这个问题,但我无法真正做到这一点.我只需要一种方法来获取可点击的行,以便我可以检测何时按下一行.长按和聚焦工作正常.
我有ListView自定义Adapter,View以ListView这种方式供应:
public View getView(int position, View convertView, ViewGroup parent)
{
RelativeLayout.LayoutParams lineParams;
RelativeLayout line=new RelativeLayout(context);
TextView tv=new TextView(context);
tv.setText("Text in postion="+i);
lineParams=new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lineParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
line.addView(tv, lineParams);
lineParams.addRule(RelativeLayout.CENTER_IN_PARENT);
//checkbox
CheckBox checkBox=new CheckBox(context);
lineParams=new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lineParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
lineParams.addRule(RelativeLayout.CENTER_IN_PARENT);
line.addView(checkBox, lineParams);
return line;
}
Run Code Online (Sandbox Code Playgroud)
在ListView里面的某个地方setOnItemClickListener(),它应该拦截项目点击事件.我的问题是,每当我尝试向项目添加复选框时 - 我都没有得到任何回复ListView.如果我跳过CheckBox或其他任何Button工作.
我真的遇到了这个问题,我尝试了各种布局,对齐,包装等等 - 没用.看起来像CheckBox干扰ListView项目点击事件.
任何想法如何克服?