Android开发RecyclerView用法个人总结

 因为RecyclerView控件在v7包下:

首先、要添加v7包下RecyclerView的依赖:

 

 

 

 做好准备工作后,开始正式进入RecyclerView的用法。

1、activity_main下的布局文件中已经可以引用到RecyclerView控件了。并且准备好列表中itemView的布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/retest_rv">

    </android.support.v7.widget.RecyclerView>
</FrameLayout>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/test"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="HELLO" />
</LinearLayout>

2、准备RecyclerView的适配器

package cn.houyongkang.edu.henu.testcontactrecord;

import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * Created by houyongkang on 2019/3/28 0028.
 */
public class RecentAdapter extends RecyclerView.Adapter <RecentAdapter.InnerViewHolder>{
    @NonNull
    @Override
    public InnerViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_view,viewGroup,false);
        InnerViewHolder innerViewHolder = new InnerViewHolder(view);
        return innerViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull InnerViewHolder innerViewHolder, int i) {
        innerViewHolder.mTest.setText("更改后的hello!");
    }

    @Override
    public int getItemCount() {
        return 2;
    }

    public class InnerViewHolder extends RecyclerView.ViewHolder {

        private final TextView mTest;

        public InnerViewHolder(@NonNull View itemView) {
            super(itemView);
            mTest = itemView.findViewById(R.id.test);
        }
    }
}

这里要介绍一下RecyclerView.Adapter要实现的三个方法:onCreateViewHolder(),onBindViewHolder(),getItemCount()3个方法。其中getItemCount()方法比较简单,即返回列表中列表项的项数。另外几个如下:第一、onCreateViewHolder()方法用于创建ViewHolder实例,用于返回一个viewHolder实例。第二、再就是在继承自RecyclerView.ViewHolder的InnerViewHolder内部类中找到itemView中所包含的控件。第三、最后在onBindViewHolder()中对InnerViewHolder类中找到的控件进行操作。

3、MainActivity中可以对RecyclerView进行适配器的设置

package cn.houyongkang.edu.henu.testcontactrecord;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

public class MainActivity extends AppCompatActivity {

    private RecyclerView mRv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 回忆RecyclerView的用法
         */
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        mRv = this.findViewById(R.id.retest_rv);
        //1、设置RecyclerView的布局管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        mRv.setLayoutManager(linearLayoutManager);
        //2、设置RecyclerView的适配器
        RecentAdapter recentAdapter = new RecentAdapter();
        mRv.setAdapter(recentAdapter);
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 开发中,可以通过设置 RecyclerView 的间距来调整其显示效果。下面是一些实现方法: 1. 在 RecyclerView 的 item 布局文件中添加 margin 属性。例如,在 LinearLayout 布局中,可以通过设置 android:layout_marginTop、android:layout_marginBottom、android:layout_marginLeft、android:layout_marginRight 属性来设置上下左右的间距。 2. 通过 RecyclerView.ItemDecoration 实现间距设置。自定义一个 RecyclerView.ItemDecoration 类,重写 onDraw() 和 getItemOffsets() 方法,在 getItemOffsets() 方法中设置 item 之间的间距。 ```java public class MyItemDecoration extends RecyclerView.ItemDecoration { private int space; public MyItemDecoration(int space) { this.space = space; } @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { outRect.left = space; outRect.right = space; outRect.bottom = space; if (parent.getChildLayoutPosition(view) == 0) { outRect.top = space; } else { outRect.top = 0; } } } ``` 在 RecyclerView 的代码中调用 setItemDecoration() 方法,将自定义的 MyItemDecoration 类传入即可。 ```java recyclerView.addItemDecoration(new MyItemDecoration(10)); ``` 3. 使用 RecyclerView 的 LayoutManager 来实现间距设置。例如,使用 LinearLayoutManager 的 setPadding() 和 setClipToPadding() 方法来设置间距。 ```java LinearLayoutManager layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); recyclerView.setPadding(10, 10, 10, 10); recyclerView.setClipToPadding(false); ``` 以上是三种常用的设置 RecyclerView 间距的方法,可以根据具体需求选择适合自己的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值