【问题标题】:Expandablelistview With Custom Child Layout in AndroidAndroid中具有自定义子布局的Expandablelistview
【发布时间】: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

【问题讨论】:

标签: android listview android-recyclerview expandablelistview expandablelistadapter


【解决方案1】:

使用此CustomAdapter 并使用自定义enter code herelayout 只需创建您的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;
    }

让我知道它是否适合你,如果有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多