RecyclerView添加Header

1

// 万能adapter
    implementation 'com.zhy:base-rvadapter:3.0.3'
    implementation 'com.zhy:base-adapter:3.0.3'

2

GridLayoutManager gridLayoutManager = new GridLayoutManager(ServiceCustomActivity.this, 2);
                    hotServiceRv.setLayoutManager(gridLayoutManager);


                    myAdapter = new HotServiceAdapter(data, ServiceCustomActivity.this);
//                    hotServiceRv.setAdapter(myAdapter);
                    myAdapter.setRecyclerItemClickListener(new HotServiceAdapter.OnRecyclerItemClickListener() {
                        @Override
                        public void onRecyclerItemClick(int position) {
                            int serviceClassId = data.get(position).getServiceClassId();
                            int serviceId = data.get(position).getServiceId();
                            Intent intent = new Intent(ServiceCustomActivity.this, ServiceDetailWebActivity.class);
                            intent.putExtra("weburl", Constant.service + "serviceClassId=" + serviceClassId + "&serviceId=" + serviceId);
                            startActivity(intent);

                        }
                    });


                    HeaderAndFooterWrapper mHeaderAndFooterWrapper = new HeaderAndFooterWrapper(myAdapter);

                    TextView t1 = new TextView(ServiceCustomActivity.this);
                    t1.setText("热门服务");
                    t1.setTextColor(R.color.black);
                    t1.setTextSize(16);
                    t1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
                    View headView = getLayoutInflater().inflate(R.layout.header_view, null);
                    mHeaderAndFooterWrapper.addHeaderView(headView);
                    mHeaderAndFooterWrapper.addHeaderView(t1);

                    hotServiceRv.setAdapter(mHeaderAndFooterWrapper);
                    mHeaderAndFooterWrapper.notifyDataSetChanged();

3

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.ServiceCustomActivity">

    <LinearLayout
        android:paddingTop="14dp"
        android:paddingLeft="13dp"
        android:paddingRight="13dp"
        android:background="@color/blue"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:src="@mipmap/yibei"
            android:layout_width="42dp"
            android:layout_height="wrap_content" />

        <RelativeLayout
            android:layout_marginLeft="4dp"
            android:layout_marginRight="4dp"
            android:layout_gravity="center_vertical"
            android:background="@drawable/sousuo"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content">

            <Button
                android:layout_width="match_parent"
                android:layout_height="33dp"
                android:background="@null"
                android:paddingLeft="10dp"
                android:text="@string/sousuo_tips"
                android:textColor="#CCCCCC" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="20dp"
                android:background="@mipmap/sousuo" />
        </RelativeLayout>

        <ImageView
            android:layout_gravity="center"
            android:src="@mipmap/send_demand"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>
 

    <androidx.recyclerview.widget.RecyclerView
        android:background="@mipmap/service_cutom_background"
        android:id="@+id/hot_service_rv"
        android:paddingTop="9dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

4

package com.ruhai.yibei.adapter;


import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.bumptech.glide.Glide;
import com.ruhai.yibei.R;
import com.ruhai.yibei.bean.HotServiceBean;

import java.util.List;

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

    private List<HotServiceBean.DataDTO.RecordsDTO> data;
    private Context context;

    public HotServiceAdapter(List<HotServiceBean.DataDTO.RecordsDTO> data, Context context) {
        this.data = data;
        this.context = context;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.hot_service_item, null);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.tv.setText(data.get(position).getServiceName());
        if (data.get(position).getPicUrl().contains("http")) {
            Glide.with(context).load(data.get(position).getPicUrl()).into(holder.hotServiceImgv);
        } else {
            Glide.with(context).load("https:" + data.get(position).getPicUrl()).into(holder.hotServiceImgv);
        }

    }

    @Override
    public int getItemCount() {
        return data == null ? 0 : data.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        private TextView tv;
        private ImageView hotServiceImgv;


        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            tv = itemView.findViewById(R.id.hot_service_tv);
            hotServiceImgv = (ImageView) itemView.findViewById(R.id.hot_service_imgv);

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mOnItemClickListener != null) {
                        mOnItemClickListener.onRecyclerItemClick(getAdapterPosition());
                    }
                }
            });
        }
    }

    private OnRecyclerItemClickListener mOnItemClickListener;

    public void setRecyclerItemClickListener(OnRecyclerItemClickListener listener) {
        mOnItemClickListener = listener;
    }

    public interface OnRecyclerItemClickListener {
        void onRecyclerItemClick(int position);
    }
}


猜你喜欢

转载自blog.csdn.net/xiyangyang8110/article/details/123240375