android recyclerview模板,简单的Android RecyclerView示例

以下是最小示例,如下图所示.

viWlr.png

从空活动开始.您将执行以下任务以添加RecyclerView.您需要做的就是复制并粘贴每个部分中的代码.稍后您可以自定义它以满足您的需求.

>将依赖项添加到gradle

>为活动和RecyclerView行添加xml布局文件

>制作RecyclerView适配器

>在您的活动中初始化RecyclerView

更新Gradle依赖项

确保您的app gradle.build文件中包含以下依赖项:

implementation 'com.android.support:appcompat-v7:27.1.1'

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

您可以将版本号更新为the most current.如果您仍在使用Android Studio 2.x,请使用编译而不是实现.

创建活动布局

将RecyclerView添加到xml布局中.

activity_main.xml中

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/rvAnimals"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

创建行布局

我们的RecyclerView中的每一行只有一个TextView.创建一个新的布局资源文件.

recyclerview_row.xml

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:padding="10dp">

android:id="@+id/tvAnimalName"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20sp"/>

创建适配器

RecyclerView需要一个适配器来填充每行中包含数据的视图.创建一个新的java文件.

MyRecyclerViewAdapter.java

public class MyRecyclerViewAdapter extends RecyclerView.Adapter {

private List mData;

private LayoutInflater mInflater;

private ItemClickListener mClickListener;

// data is passed into the constructor

MyRecyclerViewAdapter(Context context, List data) {

this.mInflater = LayoutInflater.from(context);

this.mData = data;

}

// inflates the row layout from xml when needed

@Override

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View view = mInflater.inflate(R.layout.recyclerview_row, parent, false);

return new ViewHolder(view);

}

// binds the data to the TextView in each row

@Override

public void onBindViewHolder(ViewHolder holder, int position) {

String animal = mData.get(position);

holder.myTextView.setText(animal);

}

// total number of rows

@Override

public int getItemCount() {

return mData.size();

}

// stores and recycles views as they are scrolled off screen

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

TextView myTextView;

ViewHolder(View itemView) {

super(itemView);

myTextView = itemView.findViewById(R.id.tvAnimalName);

itemView.setOnClickListener(this);

}

@Override

public void onClick(View view) {

if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition());

}

}

// convenience method for getting data at click position

String getItem(int id) {

return mData.get(id);

}

// allows clicks events to be caught

void setClickListener(ItemClickListener itemClickListener) {

this.mClickListener = itemClickListener;

}

// parent activity will implement this method to respond to click events

public interface ItemClickListener {

void onItemClick(View view, int position);

}

}

笔记

>虽然不是绝对必要,但我包含了在行上侦听点击事件的功能.这在旧的ListViews中可用,并且是常见的需求.如果您不需要,可以删除此代码.

在Activity中初始化RecyclerView

将以下代码添加到主活动中.

MainActivity.java

public class MainActivity extends AppCompatActivity implements MyRecyclerViewAdapter.ItemClickListener {

MyRecyclerViewAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// data to populate the RecyclerView with

ArrayList animalNames = new ArrayList<>();

animalNames.add("Horse");

animalNames.add("Cow");

animalNames.add("Camel");

animalNames.add("Sheep");

animalNames.add("Goat");

// set up the RecyclerView

RecyclerView recyclerView = findViewById(R.id.rvAnimals);

recyclerView.setLayoutManager(new LinearLayoutManager(this));

adapter = new MyRecyclerViewAdapter(this, animalNames);

adapter.setClickListener(this);

recyclerView.setAdapter(adapter);

}

@Override

public void onItemClick(View view, int position) {

Toast.makeText(this, "You clicked " + adapter.getItem(position) + " on row number " + position, Toast.LENGTH_SHORT).show();

}

}

笔记

>请注意,该活动实现了我们在适配器中定义的ItemClickListener.这允许我们处理onItemClick中的行点击事件.

成品

而已.您应该能够立即运行项目并获得与顶部图像类似的内容.

继续

在行之间添加分隔符

您可以添加这样的简单分隔符

DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),

layoutManager.getOrientation());

recyclerView.addItemDecoration(dividerItemDecoration);

如果您想要更复杂的东西,请参阅以下答案:

单击时更改行颜色

有关如何更改背景颜色并在单击行时添加“波纹效果”,请参阅this answer.

更新行

有关如何添加,删除和更新行的信息,请参阅this answer.

进一步阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值