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

4

尝试将 isChildSelectable() 的返回值设为 True

于 2013-11-19T11:32:10.467 回答
0

onClick 属性(为什么还要放它?)和 onChildClickListener 之间存在冲突。

onClick 捕获 TypeModuleView 上的单击事件。LinearLayout 没有收到它,并且没有点击孩子。

于 2013-01-24T10:40:46.883 回答