- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在关注:Programmatically collapse a group in ExpandableListView .我希望用户一次只能展开一个组并平滑地滚动到正确的位置。我编写了一个实现 OnGroupClickListener 的自定义适配器:
public class CategoriesListAdapter extends BaseExpandableListAdapter implements OnGroupClickListener {
private ExpandableListView expListView;
private int lastExpandedGroupPosition = -1;
// I get the expListView in the constructor...
@Override
public boolean onGroupClick(ExpandableListView parent, View view, int groupPosition, long id) {
parent.smoothScrollToPosition(groupPosition);
if (parent.isGroupExpanded(groupPosition)) {
parent.collapseGroup(groupPosition);
} else {
parent.expandGroup(groupPosition);
}
return true;
}
@Override
public void onGroupExpanded(int groupPosition) {
if (groupPosition != lastExpandedGroupPosition) {
expListView.collapseGroup(lastExpandedGroupPosition);
}
super.onGroupExpanded(groupPosition);
lastExpandedGroupPosition = groupPosition;
}
}
不幸的是,永远不会触发 onGroupClick 事件...(我在该方法中放置了一些日志)。我也试过:
expListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View view, int groupPosition, long id) {
// Same as above...
});
}
此替代方案的结果相同...有什么想法吗?
最佳答案
我建议您先检查导入(未在您的问题中显示),并确保您已导入 android.widget.ExpandableListView.OnGroupClickListener
或替换:new OnGroupClickListener() {
使用 新的 android.widget.ExpandableListView.OnGroupClickListener {
编辑:
我还注意到您在 boolean onGroupClick(...)
的正文中返回“true”,这意味着“点击已处理”并且组永远不会折叠、展开。
如果你想扩展你应该返回false。所以我建议你这样做:
expListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
Log.d("onGroupClick:", "worked");
parent.smoothScrollToPosition(groupPosition);
if (parent.isGroupExpanded(groupPosition)) {
parent.collapseGroup(groupPosition);
} else {
parent.expandGroup(groupPosition);
}
return false;
}
});
关于android - ExpandableListview OnGroupClickListener 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291612/
我在我的 ExpandableListView 上设置了 OnGroupClickListener。但是当我点击展开的组时 - 第一组的组折叠了,并且只有在第二次点击之后 OnGroupClickLi
如何检索在 ExpandableListView 的 OnGroupClickListener 中单击的组。 我尝试过parent.getItemAtPosition(groupPosition),它
我有一个可扩展 ListView ,需要在有人单击组行时动态添加子行。最好的方法是向我的服务器发送一个 AsyncHttp 请求,服务器用我解析成的 json 和 Object.这样做的问题是,如果
我正在关注:Programmatically collapse a group in ExpandableListView .我希望用户一次只能展开一个组并平滑地滚动到正确的位置。我编写了一个实现 O
我正在尝试将一个复选框放入 ExpandableListView。我怎么做?我扩展了 BaseExpandableListAdapter 并将以下内容放入 getGroupView() 中: @Ove
我有自定义 groupView,需要在展开和折叠时更改状态。如果展开同一个组 View ,它会在两种状态之间切换。 我遇到的问题是 expand 方法似乎正在提取 View 的某些缓存版本,因为调用
我是一名优秀的程序员,十分优秀!