具有可变级别数的 ExpandableListView
Posted
技术标签:
【中文标题】具有可变级别数的 ExpandableListView【英文标题】:ExpandableListView with a variable number of levels 【发布时间】:2016-03-07 15:07:33 【问题描述】:我正在尝试创建一个,就像这样。
http://i.imgur.com/ukkCq7B.png
我已经按照这个示例创建了一个只有一级子级的 ExpandableListView:
https://gist.github.com/bowmanb/4052030
代码:
public class SavedTabsFragment extends Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View v = inflater.inflate(R.layout.saved_tabs, null);
ExpandableListView elv = (ExpandableListView) v.findViewById(R.id.list);
elv.setAdapter(new SavedTabsListAdapter());
return v;
public class SavedTabsListAdapter extends BaseExpandableListAdapter
private String[] groups = "People Names", "Dog Names", "Cat Names", "Fish Names" ;
private String[][] children =
"Arnold", "Barry", "Chuck", "David" ,
"Ace", "Bandit", "Cha-Cha", "Deuce" ,
"Fluffy", "Snuggles" ,
"Goldy", "Bubbles"
;
@Override
public int getGroupCount()
return groups.length;
@Override
public int getChildrenCount(int i)
return children[i].length;
@Override
public Object getGroup(int i)
return groups[i];
@Override
public Object getChild(int i, int i1)
return children[i][i1];
@Override
public long getGroupId(int i)
return i;
@Override
public long getChildId(int i, int i1)
return i1;
@Override
public boolean hasStableIds()
return true;
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup)
TextView textView = new TextView(SavedTabsFragment.this.getActivity());
textView.setText(getGroup(i).toString());
return textView;
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup)
TextView textView = new TextView(SavedTabsFragment.this.getActivity());
textView.setText(getChild(i, i1).toString());
return textView;
@Override
public boolean isChildSelectable(int i, int i1)
return true;
如何创建? ExpandableListView 是不是最好的选择?
【问题讨论】:
有人有答案吗? 【参考方案1】:This post 解释了关于 3 级可扩展列表。希望这会有所帮助。
基本思想是,第一级列表由ExpandableListAdapter
支持。此适配器生成的子视图是 ExpandableListAdapters
本身,它们提供了二级组和最终的子元素。
【讨论】:
我正在寻找可变数量的级别,这意味着它可以是 1 级或 20 级。另外,我觉得这篇文章可能有点过时了,因为它已经快 4 年了。 好吧,我认为仅使用ExpandableListView
来实现您想要的并不是一个有效的解决方案。它会让事情变得一团糟。
是的,这就是我寻求指导的原因。以上是关于具有可变级别数的 ExpandableListView的主要内容,如果未能解决你的问题,请参考以下文章