【发布时间】:2016-03-09 14:48:42
【问题描述】:
我无法知道为什么我的 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);
}
}
【问题讨论】:
-
你尝试从
onChildClick返回true吗? -
我又添加了一些东西...请检查...是 android:onClick 可能会造成问题的东西吗???如果是,那么它可能是什么......
-
通过摆脱 LongClickable 和 OnClick,它会起作用。最好使用 onChildClick,如果你想要 longClick 然后使用 onItemLongClick。
标签: android events expandablelistview