RecycleView的使用

来源:互联网 发布:如何自建cdn源码 编辑:程序博客网 时间:2024/06/15 20:28

首先要导入RecycleView的库:

在Build.gradle文件中添加代码然后编译。

implementation 'com.android.support:recyclerview-v7:26.1.0'

然后开始布局

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout 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:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.example.zhanhaoxuan.recycleview_demo.MainActivity"><android.support.v7.widget.RecyclerView    android:id="@+id/recycle_view"    android:layout_width="match_parent"    android:layout_height="wrap_content"></android.support.v7.widget.RecyclerView>e</android.support.constraint.ConstraintLayout>
在MainActivity文件中

public class MainActivity extends AppCompatActivity {    private RecyclerView recycle_view;    private ArrayList<String> list;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //找控件        recycle_view = findViewById(R.id.recycle_view);//初始化        initData();//3.设置布局管理器  线性布局管理器//        LinearLayoutManager manager=new LinearLayoutManager(this);//        manager.setOrientation(LinearLayoutManager.HORIZONTAL);//设置方向:纵向//        recyclerView.setLayoutManager(manager);//网格布局管理器        GridLayoutManager manager=new GridLayoutManager(this,3);        manager.setOrientation(GridLayoutManager.VERTICAL);        recycle_view.setLayoutManager(manager);        //创建适配器        Myadapter adapter=new Myadapter(list,this);        recycle_view.setAdapter(adapter);    }    private void initData() {        list = new ArrayList<>();        list.add("推荐");        list.add("视频");        list.add("娱乐");        list.add("新闻");        list.add("社会");        list.add("科技");        list.add("军事");        list.add("英语");        list.add("音乐");        list.add("天气");        list.add("OK");    }}
然后是创建适配器

首先Myadapter 继承的是RecyclerView.Adapter 然后不要去实现方法,直接创建一个ViewHolder类继承自RecyclerView.ViewHolder再添加有参构造,再构造方法中找控件。然后实现三个方法即可。


public class Myadapter extends RecyclerView.Adapter<Myadapter.ViewHolder> {    private ArrayList<String> list;    private Context context;    public Myadapter(ArrayList<String> list, Context context) {        this.list = list;        this.context = context;    }    @Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        //引入布局        View view=View.inflate(context,R.layout.item_layout,null);        ViewHolder holder=new ViewHolder(view);        return holder;    }    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        holder.tv.setText(list.get(position));    }    @Override    public int getItemCount() {        return list.size();    }    class ViewHolder extends RecyclerView.ViewHolder{    private final TextView tv;    public ViewHolder(View itemView) {        super(itemView);        tv = itemView.findViewById(R.id.tv);    }}}

item的XML文件

<?xml version="1.0" encoding="utf-8"?><RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"    android:layout_height="match_parent"><TextView    android:layout_width="70dp"    android:id="@+id/tv"    android:layout_height="30dp"    android:layout_margin="10dp"    android:gravity="center"    android:background="#ccc"    /></RelativeLayo


原创粉丝点击