Android中具有自定义子布局的Expandablelistview
Posted
技术标签:
【中文标题】Android中具有自定义子布局的Expandablelistview【英文标题】:Expandablelistview With Custom Child Layout in Android 【发布时间】:2018-11-18 02:40:49 【问题描述】:我在谷歌上搜索了两天,但很难找到我的问题的运气。我想要实现的是我想创建一个ExpandableListView
,其中每个孩子都有两个值,一个在右边,另一个在左边,下面的问题:How to achieve Expandablelistview child custom layout? 是相关的,但不完全因为有一些元素不见了
这就是我想要设计我的用户界面的方式,我的数组是这样的
[Parent 1 =[Child 1, Child 1.1,child 2,child 2.1,child 3,child 3.1,child 4, child 4.1,child 5, child 5.1],Parent 1=[]]
等等,现在请帮我解决这个问题,以便我可以创建一个类似于给定的 UI
【问题讨论】:
您可以为您的孩子定制课程。试试我的示例来回答这个问题:***.com/questions/50092400/… 希望对您有所帮助! @I_A_Mok 感谢您的帮助 【参考方案1】:使用此CustomAdapter
并使用自定义enter code here
layout 只需创建您的layout.xml
并在此adapter
中使用
并尝试改进您的R&d skills
这不是一项非常大的任务,您需要花费两天时间来实现它。任何网站都不提供code
,因为您只想指导我们,我们需要根据我们的要求改进该代码
public class CustomAdapter extends BaseExpandableListAdapter
Context context;
ArrayList<WeblListHeader> webHeader;
public CustomAdapter(Context context, ArrayList<WeblListHeader> webHeader)
this.context = context;
this.webHeader = webHeader;
@Override
public int getGroupCount()
return webHeader.size();
@Override
public int getChildrenCount(int i)
return webHeader.get(i).getAl_state().size();
@Override
public Object getGroup(int i)
return webHeader.get(i);
@Override
public Object getChild(int i, int i1)
return webHeader.get(i).getAl_state().get(i1);
@Override
public long getGroupId(int i)
return i;
@Override
public long getChildId(int i, int i1)
return i1;
@Override
public boolean hasStableIds()
return false;
@Override
public View getGroupView(int i, boolean isExpanded, View view, ViewGroup viewGroup)
if (view==null)
LayoutInflater layoutInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.your_expend_header_layout, null);
TextView tv_state = (TextView)view.findViewById(R.id.tv_name);
ImageView iconExpend = (ImageView)view.findViewById(R.id.iconExpend);
if (isExpanded)
iconExpend.setImageResource(R.drawable.arrow_up_selected);
tv_state.setTextColor(context.getResources().getColor(R.color.selectedText));
else
iconExpend.setImageResource(R.drawable.arrow_down_unselect);
tv_state.setTextColor(context.getResources().getColor(R.color.white));
tv_state.setText(webHeader.get(i).getStr_country());
return view;
@Override
public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup)
if (view==null)
LayoutInflater layoutInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.your_child_layout, null);
TextView tv_state = (TextView)view.findViewById(R.id.tv_name);
tv_state.setText(webHeader.get(i).getAl_state().get(i1).getStr_name());
tv_state.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
);
return view;
@Override
public boolean isChildSelectable(int i, int i1)
return false;
让我知道它是否适合你,如果有任何问题。
【讨论】:
以上是关于Android中具有自定义子布局的Expandablelistview的主要内容,如果未能解决你的问题,请参考以下文章