2013-10-22 72 views
1

在實現應用程序時,您可以在左側選擇不同的選項並將它們添加到右側的main_fragment。這裏的例子:Android ExpandableListView不會在返回LinearLayout或視圖時展開

與此代碼的工作一切正常:

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

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

    return textview;} 

但我需要一個旁邊的複選框我的TextView。現在,有幾種方法可以做到這一點,但不幸的是,沒有一種方法可以在點擊時提供相同的結果:展開!

這是與在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; 

請注意,我已經shortend該代碼使其更易於閱讀。請教thanx !

回答

1

複選框默認捕獲其父級佈局的所有焦點事件。因此,爲了使佈局手柄點擊事件(包括擴展),你需要複選框可聚焦性設置爲false:
XML佈局:

android:focusable="false" 

從Java代碼:

checkBox.setFocuseble(false); 
+0

我很高興!按需要工作。我想,那只是經驗!感謝名單! –

+0

當我在GroupView中切換時,這幫助了我。必須將Switch的可聚焦性設置爲false。現在,他們可以擴展和崩潰,交換機仍然按預期工作。 –

相關問題