第一步:在tab01中添加RecyclerView控件并进行布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
第二步:新建一个item_xml为RecyclerView设定xml样式
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:id="@+id/layout1"
android:layout_width="wrap_content"
android:layout_height="125dp"
android:gravity="center">
<ImageView
android:id="@+id/img"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="125dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="10dp">
<TextView
android:id="@+id/name"
android:layout_width="190dp"
android:layout_height="25dp"
android:text=""
android:textSize="20sp"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:id="@+id/name2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/price"
android:layout_width="190dp"
android:layout_height="25d"
android:textSize="20sp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
第三步:创建适配器集成RecyclerView.Adapter
package com.example.myapplication;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
class myadpater extends RecyclerView.Adapter<myadpater.myViewHolder> {
private OnItemClickListener onItemClickListener;
private Context context;
private ArrayList<GoodsEntity> goodsEntities;
public myadpater(Context context, ArrayList<GoodsEntity> goodsEntities){
this.context = context;
this.goodsEntities = goodsEntities;
}
@Override
public myadpater.myViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = View.inflate(context, R.layout.item,null);
return new myViewHolder(itemView);
}
@Override
public void onBindViewHolder(myadpater.myViewHolder holder, int position) {
GoodsEntity data = goodsEntities.get(position);
holder.mItemGoodsName.setText(data.goodsName);
holder.mItemGoodsPrice.setText(data.goodsPrice);
}
@Override
public int getItemCount() {
return goodsEntities.size();
}
class myViewHolder extends RecyclerView.ViewHolder {
//定义控件
private ImageView mItemGoodsImg;
private TextView mItemGoodsName;
private TextView mItemGoodsPrice;
private TextView mItemGoodsNameTitle;
private TextView mItemGoodsPriceTitle;
public myViewHolder( View itemView) {
super(itemView);
//找到控件
mItemGoodsImg = itemView.findViewById(R.id.item_goods_img);
mItemGoodsName = itemView.findViewById(R.id.item_goods_name);
mItemGoodsPrice = itemView.findViewById(R.id.item_goods_price);
//设置点击事件
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener!=null){
onItemClickListener.OnItemClick(v,goodsEntities.get(getLayoutPosition()));
}
}
});
}
}
//设置点击事件监听器
public interface OnItemClickListener {
public void OnItemClick(View view, GoodsEntity data);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
}
最后在weixinFragment定义和使用recycerview
package com.example.myapplication;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
/**
* A simple {@link Fragment} subclass.
*/
public class weixinFragment extends Fragment {
private RecyclerView recyclerView; //定义ReclerView控件
private View view;//定义view来设置fragment中的layout
private ArrayList<GoodsEntity> goodsEntities = new ArrayList<GoodsEntity>();
private myadpater myadpater;
public weixinFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.tab01,container,false);
initRecyclerView();
initData();
return view;
}
private void initRecyclerView() {
recyclerView = (RecyclerView)view.findViewById(R.id.recyclerView);
myadpater = new myadpater(getActivity(),goodsEntities);
recyclerView.setAdapter(myadpater);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
myadpater.setOnItemClickListener(new myadpater.OnItemClickListener() {
@Override
public void OnItemClick(View view, GoodsEntity data) {
Toast.makeText(getActivity(),"无", Toast.LENGTH_SHORT).show();
}
});
}
//
private void initData(){
for (int i=0;i<20;i++){
GoodsEntity goodsEntity = new GoodsEntity();
goodsEntity.setGoodsName("yulei");
goodsEntity.setGoodsPrice("helloword");
goodsEntities.add(goodsEntity);
}
}
}
最后运行MainActivity即可。
运行结果为
链接: myfragment.