效果图
1、activity_recycler_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="60dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp">
<TextView
android:id="@+id/cycle_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="info_text1:"
android:textSize="25dp"
>
</TextView>
<EditText
android:id="@+id/cycle_item_edit"
android:layout_width="match_parent"
android:layout_height="match_parent">
</EditText>
</LinearLayout>
</RelativeLayout>
2、activity_recycler.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.example.myapplication.RecyclerActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_recyclerview_horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
</androidx.recyclerview.widget.RecyclerView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="vertical"
android:layout_alignParentBottom="true">
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:text="next"
>
</Button>
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:text="cancel"
>
</Button>
</LinearLayout>
</RelativeLayout>
3、RecyclerActivity
上面的布局没什么好说的,RecyclerActivity
主要是给activity_recycler_item.xml
中的组件进行内容渲染,我在这儿用的是EditText
和TextView
,ImageView
也可以渲染,其他组件是否可以渲染就自己试一下
package com.example.myapplication;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RecyclerActivity extends Activity {
private RecyclerView mRecyclerView;
private GalleryAdapter mAdapter;
private List<String> mDatas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler);
initDatas();
//得到控件
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview_horizontal);
//设置布局管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(linearLayoutManager);
//设置适配器
mAdapter = new GalleryAdapter(this, mDatas);
mRecyclerView.setAdapter(mAdapter);
}
/**
* 初始化列表的TextView
*/
private void initDatas()
{
mDatas = new ArrayList<>(Arrays.asList("test01:","test02:","test03:","test04:"
,"test04:","test04:","test04:","test04:","test04:","test04:","test04:"
,"test04:","test04:","test04:","test04:","test04:","test04:"
,"test04:","test04:","test04:","test04:","test04:","test04:"));
}
public class GalleryAdapter extends
RecyclerView.Adapter<GalleryAdapter.ViewHolder>
{
private LayoutInflater mInflater;
private List<String> mDatas;
public GalleryAdapter(Context context, List<String> datats)
{
mInflater = LayoutInflater.from(context);
mDatas = datats;
}
public class ViewHolder extends RecyclerView.ViewHolder
{
public ViewHolder(View arg0)
{
super(arg0);
}
//activity_recycler_item.xml中使用的是什么就用什么组件,我自己使用的组件都可以
EditText editText;
TextView textView;
}
@Override
public int getItemCount()
{
return mDatas.size();
}
/**
* 创建ViewHolder
*/
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i)
{
View view = mInflater.inflate(R.layout.activity_recycler_item,
viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);
viewHolder.textView = (TextView) view
.findViewById(R.id.cycle_item_text);
return viewHolder;
}
/**
* 设置值
*/
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i)
{
viewHolder.textView.setText(mDatas.get(i));
}
}
}