先引入RecyclerView依赖包,V7下的,兼容到API17
compile 'com.android.support:mediarouter-v7:25.0.0' compile 'com.android.support:appcompat-v7:25.0.0' compile 'com.android.support:recyclerview-v7:25.0.0'
Activity的布局
<android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:divider="#ffff0000" android:dividerHeight="10dp" android:layout_width="match_parent" android:layout_height="match_parent" />
item的布局
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="#44ff0000" android:layout_height="wrap_content" > <TextView android:id="@+id/id_num" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="1" /> </FrameLayout>
MainActivity中
public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private List<String> mDatas; private HomeAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview); //mRecyclerView.setLayoutManager(new LinearLayoutManager(this));//listview展示 //mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));//gridview展示 mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL)); //设置item之间的间隔 SpacesItemDecoration decoration=new SpacesItemDecoration(30); mRecyclerView.addItemDecoration(decoration); //添加适配器 mRecyclerView.setAdapter(mAdapter = new HomeAdapter()); //添加分割线 mRecyclerView.addItemDecoration(new DividerItemDecoration( MainActivity.this, DividerItemDecoration.VERTICAL )); //添加分割线 mRecyclerView.addItemDecoration(new DividerItemDecoration( MainActivity.this, DividerItemDecoration.HORIZONTAL )); } //添加数据 protected void initData() { mDatas = new ArrayList<String>(); for (int i = 'A'; i < 'z'; i++) { mDatas.add("" + (char) i); } } //添加适配器 class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( MainActivity.this).inflate(R.layout.item_home, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(mDatas.get(position)); } @Override public int getItemCount() { return mDatas.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.id_num); } } } public class SpacesItemDecoration extends RecyclerView.ItemDecoration { private int space; public SpacesItemDecoration(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.getChildAdapterPosition(view)==0){ outRect.top=space; } } } }
本文介绍如何使用Android的RecyclerView组件创建一个带有自定义布局的列表应用。通过示例代码展示了RecyclerView的配置方法,包括依赖项添加、布局文件定义、适配器编写及不同显示模式的设置。
657

被折叠的 条评论
为什么被折叠?



