Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 分段和非均质循环视图组合_Android_Android Recyclerview_Heterogeneous - Fatal编程技术网

Android 分段和非均质循环视图组合

Android 分段和非均质循环视图组合,android,android-recyclerview,heterogeneous,Android,Android Recyclerview,Heterogeneous,您好,这对我来说似乎是非常复杂的布局,如果有人能帮助我将分区和异构回收视图放在一起,这将是非常好的,对我很有帮助 我已经实现了与相同的部分,但是我没有找到我创建的链接。我有密码,也许你明白。我采取了两种观点。一个用于标题,第二个用于说明部分。我甚至为描述部分制作了itemclicklistner 标题的SectionRecycleServiceAdapter public class SectionRecyclerViewAdapter extends RecyclerView.Adapter&

您好,这对我来说似乎是非常复杂的布局,如果有人能帮助我将分区和异构回收视图放在一起,这将是非常好的,对我很有帮助


我已经实现了与相同的部分,但是我没有找到我创建的链接。我有密码,也许你明白。我采取了两种观点。一个用于标题,第二个用于说明部分。我甚至为描述部分制作了itemclicklistner

标题的SectionRecycleServiceAdapter

public class SectionRecyclerViewAdapter extends RecyclerView.Adapter<SectionRecyclerViewAdapter.SectionViewHolder> {


    class SectionViewHolder extends RecyclerView.ViewHolder {
        private TextView header;
        private RecyclerView itemRecyclerView;


        public SectionViewHolder(View itemView) {
            super(itemView);
            header= (TextView) itemView.findViewById(R.id.section_label);
            itemRecyclerView = (RecyclerView)itemView.findViewById(R.id.item_recycler_view);
        }
    }

    private Context context;
    private List<SectionModel> sectionModelArrayList;
    private LabelDataSearch labelDataSearch;

    public SectionRecyclerViewAdapter(Context applicationContext, List<SectionModel> dataLists, LabelDataSearch labelDataSearchClass) {
        this.context = applicationContext;
        this.sectionModelArrayList = dataLists;
        this.labelDataSearch=labelDataSearchClass;

    }

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

    @Override
    public void onBindViewHolder(SectionViewHolder holder, int position) {
        final SectionModel sectionModel = sectionModelArrayList.get(position);
        if(sectionModel.itemArrayList.size()>0) {
            holder.sectionLabel.setVisibility(View.VISIBLE);
            holder.sectionLabel.setText(sectionModel.sectionLabel);
        }
        else {
            holder.sectionLabel.setVisibility(View.VISIBLE);
            holder.sectionLabel.setText(sectionModel.sectionLabel+"\n No Results");
        }

        //recycler view for items
        holder.itemRecyclerView.setHasFixedSize(true);
        holder.itemRecyclerView.setNestedScrollingEnabled(false);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
        holder.itemRecyclerView.setLayoutManager(linearLayoutManager);

        ImageListAdapter adapter = new ImageListAdapter(context, sectionModel.itemArrayList,new ImageListAdapter.OnItemClickListener(){
            @Override
            public void onItemClick(LabelDataList item, int position) {
                labelDataSearch.performAction(item.pageurl);

            }
        });
        holder.itemRecyclerView.setAdapter(adapter);

    }

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


}
公共类部分RecycleServiceAdapter扩展了RecyclerView.Adapter{
类SectionViewHolder扩展了RecyclerView.ViewHolder{
私有文本视图头;
私人RecyclerView项目RecyclerView;
公共部分视图持有者(视图项视图){
超级(项目视图);
header=(TextView)itemView.findViewById(R.id.section\u标签);
itemRecyclerView=(RecyclerView)itemView.findViewById(R.id.item\u recycler\u视图);
}
}
私人语境;
私有列表部分ModelArrayList;
专用LabelDataSearch LabelDataSearch;
公共部分RecycleServiceAdapter(上下文应用程序上下文、列表数据列表、LabelDataSearch labelDataSearchClass){
this.context=applicationContext;
this.sectionModelArrayList=数据列表;
this.labelDataSearch=labelDataSearchClass;
}
@凌驾
公共部分ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View View=LayoutInflater.from(parent.getContext()).flate(R.layout.section\u custom\u row\u布局,parent,false);
返回新的截面视图保持架(视图);
}
@凌驾
BindViewHolder上的公共无效(截面ViewHolder,内部位置){
final SectionModel SectionModel=sectionModelArrayList.get(位置);
if(sectionModel.itemArrayList.size()>0){
支架.sectionLabel.setVisibility(视图.可见);
holder.sectionLabel.setText(sectionModel.sectionLabel);
}
否则{
支架.sectionLabel.setVisibility(视图.可见);
holder.sectionLabel.setText(sectionModel.sectionLabel+“\n无结果”);
}
//项目的回收器视图
holder.itemRecyclerView.setHasFixedSize(true);
holder.itemRecyclerView.setNestedScrollingEnabled(false);
LinearLayoutManager LinearLayoutManager=新的LinearLayoutManager(上下文,LinearLayoutManager.VERTICAL,false);
holder.itemRecyclerView.setLayoutManager(linearLayoutManager);
ImageListAdapter=new ImageListAdapter(上下文,sectionModel.itemArrayList,new ImageListAdapter.OnItemClickListener(){
@凌驾
public void onItemClick(标签目录项,内部位置){
labelDataSearch.performAction(item.pageurl);
}
});
holder.itemRecyclerView.setAdapter(适配器);
}
@凌驾
public int getItemCount(){
返回sectionModelArrayList.size();
}
}
用于说明的ImageListAdapter

public class ImageListAdapter extends RecyclerView.Adapter<ImageListAdapter.MyViewHolder> {

    List<LabelDataList> dataLists;
    private OnItemClickListener listener;
    private Context ctx;
    public static int sCorner = 15;
    public static int sMargin = 2;
    public static int sBorder = 10;
    public static String sColor = "#7D9067";

    public ImageListAdapter(Context context, ArrayList<LabelDataList> itemArrayList, OnItemClickListener onItemClickListener) {
        this.dataLists = itemArrayList;
        this.listener = onItemClickListener;
        this.ctx = context;
    }

    public interface OnItemClickListener {
        void onItemClick(LabelDataList item, int position);
    }

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


    @Override
    public void onBindViewHolder(final MyViewHolder holder, final int position) {
        holder.bind(dataLists.get(position), listener, position);
        final LabelDataList labelData = dataLists.get(position);
       // Your views include check box and text view or radio buttons
    }

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

    /**
     * View holder class
     */
    public class MyViewHolder extends RecyclerView.ViewHolder {

        private final TextView tvCategory;
        public TextView tvLabel;
        public RelativeLayout relTopLayout;
        public ImageView imgProduct;

        public MyViewHolder(View child) {
            super(child);
            tvLabel = (TextView) child.findViewById(R.id.tv_label);
            tvCategory = (TextView) child.findViewById(R.id.tv_category);
            imgProduct = (ImageView) child.findViewById(R.id.img_product);
            //    relTopLayout = (RelativeLayout) child.findViewById(R.id.rel_top_layout);
        }

        public void bind(final LabelDataList item, final OnItemClickListener listener, final int position) {
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    listener.onItemClick(item, position);
                }
            });
        }
    }
}
公共类ImageListAdapter扩展了RecyclerView.Adapter{
列出数据清单;
私人监听;
私有上下文ctx;
公共静态int sCorner=15;
公共静态int sMargin=2;
公共静态int sBorder=10;
公共静态字符串sColor=“#7D9067”;
公共ImageListAdapter(上下文上下文、ArrayList项ArrayList、OnItemClickListener和OnItemClickListener){
this.dataLists=itemArrayList;
this.listener=mclickListener;
this.ctx=上下文;
}
公共接口侦听器{
void onItemClick(标签目录项,int位置);
}
@凌驾
公共MyViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图v=LayoutInflater.from(parent.getContext()).flate(R.layout.row\u lebel,parent,false);
返回新的MyViewHolder(v);
}
@凌驾
公共无效onBindViewHolder(最终MyViewHolder,最终int位置){
holder.bind(datalist.get(position)、listener、position);
最终LabelDataList labelData=DataList.get(位置);
//视图包括复选框和文本视图或单选按钮
}
@凌驾
public int getItemCount(){
返回dataLists.size();
}
/**
*视图持有者类
*/
公共类MyViewHolder扩展了RecyclerView.ViewHolder{
私有最终文本视图类别;
公共文本视图标签;
公共相对性布局;
公共图像查看imgProduct;
公共MyViewHolder(视图子对象){
超级(儿童);
tvLabel=(TextView)child.findViewById(R.id.tv_标签);
tvCategory=(TextView)child.findViewById(R.id.tv_category);
imgProduct=(ImageView)child.findViewById(R.id.img_产品);
//relTopLayout=(RelativeLayout)child.findViewById(R.id.rel\u top\u布局);
}
公共void绑定(最终LabelDataList项、最终OnItemClickListener侦听器、最终int位置){
itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
listener.onItemClick(项目、位置);
}
});
}
}
}

希望对您有所帮助。

我建议您使用图书馆。我听说环氧树脂很好。我个人使用这个,但最终它取决于您的使用情况可能的副本