【发布时间】:2015-07-24 06:34:28
【问题描述】:
【问题讨论】:
-
我不明白你的问题,“创建一个像图像一样的可扩展视图?”你的意思是,我可以用 ExpandableListView 创建这个如图所示的 UI 吗?
-
是的,我也在寻找。
标签: android expandablelistview
【问题讨论】:
标签: android expandablelistview
我的回答是:不要使用可扩展列表适配器。
您的收藏看起来不像有子收藏(至少少于可滚动的数量)。您的行只是通过展开折叠来隐藏/显示数据的详细信息。
使用自定义 ListAdapter 并使每个项目展开并在单击按钮时显示详细信息(您可以通过谷歌搜索找到高度动画)。
希望对你有帮助。
【讨论】:
您可以使用自定义 ExpandableListAdapter 来实现此目的。 你可以看看下面的点赞 How to write custom ExpandableListAdapter
【讨论】:
我认为它更像是 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
【讨论】:
您可能应该创建一个扩展BaseExpandableListAdapter 的自定义ExpandableListAdapter。有很多教程。以 this 教程的第 15 部分为例。
【讨论】:
对于可扩展的列表视图,我必须使用下面的库,它对我来说就像魅力一样。
【讨论】: