【问题标题】:Child component gets rendered twice onGroupClick event子组件在GroupClick 事件中被渲染两次
【发布时间】:2016-12-21 03:43:52
【问题描述】:

我是 android 的初学者,我尝试使用 ExpandableListView 并且遇到了一些问题。

我的活动中有一个setOnGroupClickListner 事件,用于ExpandableListView。出于某种原因,当我单击该组时,它会呈现childView twice,为了关闭它,我必须单击两次。每次点击时,只有一个 childView 被隐藏。

以下是我的代码

    expandableListView = (ExpandableListView) findViewById(R.id.alarm_list);

    alist = new Alist(this, headings, childItems);
    expandableListView.setAdapter(alist);

    //setting an expand group listener
    expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
        @Override
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
            Log.e("onGroupClick:", "worked");
            parent.expandGroup(groupPosition);
            return false;
        }
    });

现在,如果我在 onGroupClick 函数中写 return true 而不是 return false,我可以通过某种方式解决这个问题。

谁能解释一下它对解决问题有什么作用?我在某处读到,如果我return true,则表示click was handled,但我无法理解它的确切含义。

感谢任何帮助。提前致谢

【问题讨论】:

    标签: android expandablelistview expandablelistadapter


    【解决方案1】:

    我没有使用过ExpandableListView,但对我来说,您似乎不必明确使用setOnGroupClickListener,因为它会自动为您完成。如果您仍然需要更改默认行为,那么您可以随意覆盖它,但您需要返回 true 以表示该事件已被消费并且不会触发默认事件。

    【讨论】:

    • 是的,确实 setOnGroupClickListener 不是强制性的。没有它也可以。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 2017-12-29
    • 2020-10-16
    相关资源
    最近更新 更多