依赖
implementation 'com.jcodecraeer:xrecyclerview:1.3.2'
布局文件 一个是首页的一个是适配器的布局
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linear" android:orientation="horizontal"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="线性布局" android:id="@+id/btn01"/> <Button android:layout_weight="1" android:layout_height="wrap_content" android:layout_width="0dp" android:text="表格布局" android:id="@+id/btn02"/> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="瀑布流" android:id="@+id/btn03"/> </LinearLayout> <com.jcodecraeer.xrecyclerview.XRecyclerView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/linear" android:id="@+id/recyclerview"></com.jcodecraeer.xrecyclerview.XRecyclerView> </RelativeLayout>
适配器的布局
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/adapter_text" android:gravity="center_horizontal"/>
MainActivity的代码
public class MainActivity extends AppCompatActivity { private XRecyclerView recyclerView; private List<String> list; private MyAdapter myAdapter; private Button btn01,btn02,btn03; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = findViewById(R.id.recyclerview); recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false)); btn01 = findViewById(R.id.btn01); list = new ArrayList<>(); for (int i = 0; i <49 ; i++) { String s = "数据"+i; list.add(s); } myAdapter = new MyAdapter(list,MainActivity.this); btn01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { recyclerView.setAdapter(myAdapter); } }); }
适配器的代码
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private List<String> list; private Context context; public MyAdapter(List<String> list, Context context) { this.list = list; this.context = context; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.myadapter_layout,parent,false); MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.text.setText(list.get(position)); } @Override public int getItemCount() { return list.size(); } class MyViewHolder extends RecyclerView.ViewHolder{ public TextView text; public MyViewHolder(View itemView) { super(itemView); text = itemView.findViewById(R.id.adapter_text); } } }