compile 'com.android.support:recyclerview-v7:25.1.0'
在module的gradle中引入recycleview库
Adapter实现 构造方法传入集合 作为数据的传递
public class MyAdapter extends RecyclerView.Adapter { @Bind(R.id.iv_item) ImageView ivItem; @Bind(R.id.tv_item) TextView tvItem; private List<String> itemDates = new ArrayList<>(); public MyAdapter(List<String> itemDates) { this.itemDates = itemDates; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //设置 item的布局 view View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); ButterKnife.bind(this, view); return new MyViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { //item布局里的子控件 可以设置 ,真实开发中往往 List的泛型是一个Bean对象 tvItem.setText(itemDates.get(position)); } @Override public int getItemCount() { return itemDates.size(); } }
主界面的实现如下:
public class MainActivity extends AppCompatActivity { @Bind(R.id.rv_main) RecyclerView rvMain; private List<String> itemDatas = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); initView(); } private void initView() { for (int i = 0; i < 10; i++) { itemDatas.add("黄忠" + i); }//recycleview一定要设置LayoutManager 否则无法展示 android官网是这么规定的
//它还可以设置为其他的Grid布局 瀑布流布局等 rvMain.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); rvMain.setAdapter(new MyAdapter(itemDatas)); } }下面是item布局文件:
如果有帮到你,<?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="60dp"> <ImageView android:id="@+id/iv_item" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv_item" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>主界面的布局文件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.soonbuy.dengjielin.recycleviewdemo.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/rv_main" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>有个主意事项:我用8.4.0 butterknife 的时候出现的问题 所以使用的是7.0.1版本 现在更新到了8.4.0版本
黄油刀你会在github发现这个事情
会多一行annotationProgrocessor 我引入的时候出错了 索性就用回7.0.1版本 了
实现的效果如图: