1

onChildClick私の一体が機能していない理由を知ることができませExpandableListViewん。しかし、onGroupClick は正常に動作します。

ここに私が持っているものがあります

fileExpandableList.setOnGroupClickListener(this);
            fileExpandableList
                .setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
                @Override
                public boolean onChildClick(ExpandableListView parent,
                        View v, int groupPosition, int childPosition,
                        long id) {
                    System.out.println("Child CLICKED.");
                    return false;
                }

            });

私は多くの人がこの問題を抱えているのを見てきましたが、誰も決定的な答えを持っていませんでした.

追加した:

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    return true;
}

リスト ビュー xml:

...
        <ExpandableListView
        android:id="@android:id/list"
        android:drawSelectorOnTop="false"
        android:groupIndicator="@drawable/group_indicator"
        style="@style/allWrapper" >
    </ExpandableListView>
</FrameLayout>

子行 xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/expandablelist_childrow"
style="@style/allmenu" >

<com.abc.xyz.android.view.TypeModuleView
    android:id="@+id/expandablelist_childview"
    android:longClickable="true"
    android:onClick="myOnClick"
    style="@style/module" >
</com.abc.xyz.android.view.TypeModuleView>

myOnClick イベント ハンドラー

    public void myOnClick(View view) {
    TypeModule clickedModule = ((TypeModuleView) view).onClick();
    if (clickedModule != null) { // In landscape layout
        moduleContentFragment.setModuleParent(clickedModule);
        moduleContentFragment.changePath("/");
        // Added for module highlighting
        expandableListFragment.setChildrenBackground(view);

    }
}
4

2 に答える 2

0

onClick 属性 (なぜそれを設定したのですか?) と onChildClickListener の間に競合があります。

onClick は、TypeModuleView のクリック イベントをキャプチャします。LinearLayout はそれを受け取らず、子はクリックされません。

于 2013-01-24T10:40:46.883 に答える