91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android展開收起列表功能怎么實現

小億
245
2024-03-22 18:57:01
欄目: 編程語言

要實現Android中的展開收起列表功能,可以使用ExpandableListView或RecyclerView來實現。以下是使用RecyclerView的步驟:

  1. 創建一個RecyclerView,并設置適配器來展示列表數據。

  2. 在適配器中,為每個列表項添加一個標記來表示該項是否已展開。

  3. 當用戶點擊列表項時,切換該項的展開狀態,并更新適配器。

  4. 在RecyclerView的ViewHolder中,根據列表項的展開狀態,設置相應的視圖可見性來實現展開和收起的效果。

下面是一個簡單的示例代碼:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> data;
    private List<Boolean> expandedList;

    public MyAdapter(List<String> data) {
        this.data = data;
        expandedList = new ArrayList<>();
        for (int i = 0; i < data.size(); i++) {
            expandedList.add(false);
        }
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, final int position) {
        holder.textView.setText(data.get(position));
        if (expandedList.get(position)) {
            holder.subLayout.setVisibility(View.VISIBLE);
        } else {
            holder.subLayout.setVisibility(View.GONE);
        }

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                expandedList.set(position, !expandedList.get(position));
                notifyItemChanged(position);
            }
        });
    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        TextView textView;
        LinearLayout subLayout;

        public ViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.textView);
            subLayout = itemView.findViewById(R.id.subLayout);
        }
    }
}

在這個示例中,每個列表項都有一個主要的TextView和一個包含詳細信息的LinearLayout。當用戶點擊列表項時,展開狀態會切換,并根據展開狀態來設置subLayout的可見性。

0
北碚区| 陕西省| 惠州市| 绥德县| 定远县| 平江县| 紫阳县| 隆回县| 静乐县| 通城县| 元朗区| 酒泉市| 霍州市| 闵行区| 民丰县| 山西省| 德化县| 美姑县| 白水县| 行唐县| 岫岩| 基隆市| 迁西县| 乐东| 天峻县| 富蕴县| 沙湾县| 自治县| 墨竹工卡县| 临高县| 滨海县| 罗城| 宁陵县| 繁昌县| 潞西市| 株洲市| 手游| 临朐县| 富川| 福清市| 宜章县|