答案 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)
对于可扩展列表视图,我必须使用下面的库,它的工作就像魅力一样。