自定义ExpandableListview Android

时间:2015-07-24 06:34:29

标签: android expandablelistview

在android中有没有办法在图像中创建可扩展视图?我尝试使用Expandable ListView,但它不符合要求。如果可以这样做,请提供Android吗?提前致谢

5 个答案:

答案 0 :(得分:4)

我的回答是:不要使用可扩展列表适配器。

您的收藏品看起来不像子集(至少少于可滚动量)。您的行只是通过展开折叠来隐藏/显示数据的详细信息。

使用自定义ListAdapter并使每个项目展开并显示带动画的按钮单击的详细信息(您可以通过Google搜索找到高度动画)。

我希望这会对你有所帮助。

答案 1 :(得分:2)

您可以使用自定义ExpandableListAdapter实现此目的。 您可以查看以下内容 How to write custom ExpandableListAdapter

答案 2 :(得分:1)

我认为它更像是RecyclerView。至少,我会在这种情况下使用它。主要原因是ViewHolder。当然,您可以提供自己的查看者模式实现,但RecyclerView强制您使用ViewHolder并提供存根。

据我所知,您不需要处理点击整个元素,但您需要处理点击加号/减号按钮。因此,当您实现ViewHolder时,只需为该视图添加单击侦听器并显示/隐藏内容,如下所示:

class ChartViewHolder extends RecyclerView.ViewHolder {
    private TextView storeTitle;
    private ToggleButton toggleBtn;
    // other views

    public ViewHolder(View itemView) {
        super(itemView);
        storeTitle = (TextView) itemView.findViewById(R.id.title_id);
        toggleBtn = (ToggleButton) itemView.findViewById(R.id.toggle_id);
        // other views

        toggleBtn.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton toggleButton, boolean isChecked) {
                if(isChecked) {
                    // make content visible
                } else {
                    // make conent invisible
                }
            }
        });
    }
}

如果您需要动画来展开/折叠,请查看Property animations

答案 3 :(得分:0)

您可以创建一个扩展ExpandableListAdapter的自定义BaseExpandableListAdapter。有很多教程。例如,查看this教程的第15部分。

答案 4 :(得分:0)

对于可扩展列表视图,我必须使用下面的库,它的工作就像魅力一样。

https://github.com/bmelnychuk/AndroidTreeView