Android ExpandableListView在返回LinearLayout或View时不会扩展

时间:2013-10-22 11:56:47

标签: android expandablelistview

我正在实施一个应用程序,您可以在左侧选择不同的选项,并将它们添加到右侧的main_fragment中。情况就是这样:

使用此代码可以正常工作:

  public View getGroupView(int i, boolean b, View view){

    TextView textview = new TextView(MyFragment.this.getActivity());
    textview.setText("smth");

  return textview;}

但是我的textview旁边需要一个复选框。现在,有几种方法可以做到这一点,但不幸的是,没有一种方法可以在点击时提供相同的结果:expand!

这是在LinearLayout中使用带有TextView和CheckBox的简单XML元素的第一种可能性:

LayoutInflater inflater =  (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);           
    view = inflater.inflate(R.layout.element, null);
    TextView textview = ((TextView) view.findViewById(R.id.textview01));
    textview.setText("smth");

    CheckBox cb = ((CheckBox) view.findViewById(R.id.checkbox01));
return view;

或以编程方式添加视图:

LinearLayout ln = new LinearLayout(MyFragment.this.getActivity());
TextView textview = new Textview(MyFragment.this.getActivity());
textview.setText("smth");
CheckBox cb = new Checkbox(MyFragment.this.getActivity());
ln.addView(textview);
ln.addView(cb);

return ln;

请注意,我缩短了代码,以便于阅读。 在建议中感谢!

1 个答案:

答案 0 :(得分:1)

默认情况下,复选框会捕获其父布局的所有焦点事件。因此,要使布局处理单击事件(包括展开),您需要将复选框焦点设置为false:
XML布局:

android:focusable="false"

来自JAVA代码:

checkBox.setFocuseble(false);