RecyclerView使用
来源:互联网 发布:幼儿园收费软件 编辑:程序博客网 时间:2024/05/06 23:25
第一步:build.gradle加入recyclerview-v7闭包
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile 'com.android.support:recyclerview-v7:25.0.3' }
第二步:使用recyclerview完成布局:
<android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView>
第三步:创建model类,Fruit.class
public class Fruit { private int fruitId; private String fruitName; public Fruit(int fruitId, String fruitName) { this.fruitId = fruitId; this.fruitName = fruitName; } public int getFruitId() { return fruitId; } public String getFruitName() { return fruitName; }}
第四步:创建子项布局文件fruit_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView android:id="@+id/fruit_id" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/fruit_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" /></LinearLayout>
第四步:创建adapter适配器
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> { private List<Fruit> mFruitList; static class ViewHolder extends RecyclerView.ViewHolder{ private TextView fruitNameText; private TextView fruitIdText; public ViewHolder(View view){ super(view); //实例控件 fruitIdText =(TextView)view.findViewById(R.id.fruit_id); fruitNameText=(TextView)view.findViewById(R.id.fruit_name); } } public FruitAdapter(List<Fruit> fruitList){ mFruitList=mFruitList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //获得View View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item,parent,false); ViewHolder viewHolder=new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { //为控件添加数据 Fruit fruit=mFruitList.get(position); holder.fruitIdText.setText(fruit.getFruitId()); holder.fruitNameText.setText(fruit.getFruitName()); } @Override public int getItemCount() { return mFruitList.size(); } }
第五步:使用为recyclerview设置适配器和布局,以及添加数据
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RecyclerView recyclerView=(RecyclerView)findViewById(R.id.recycler_view); FruitAdapter adapter=new FruitAdapter(initFruitList()); //三种布局管理器 LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);// GridLayoutManager gridLayoutManager=new GridLayoutManager(this,2);// StaggeredGridLayoutManager staggeredGridLayoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(linearLayoutManager); } List<Fruit> initFruitList(){ List<Fruit> fruitList=new ArrayList<Fruit>(); for (int i=0;i<50;i++){ fruitList.add(new Fruit(String.valueOf(i),"fruit "+i)); } return fruitList; } }
效果演示暂无,嘿嘿。
阅读全文
0 0
- RecyclerView使用
- RecyclerView使用:
- 使用RecyclerView
- 使用RecyclerView
- RecyclerView使用
- RecyclerView使用
- recyclerView 使用
- RecyclerView使用
- recyclerview使用
- RecyclerView使用
- recyclerview使用
- RecyclerView使用
- RecyclerView使用
- RecyclerView -- 使用
- RecyclerView使用
- RecyclerView使用
- RecyclerView+RecyclerView.Adapter+RecyclerView.ViewHolder的使用
- First RecyclerView (RecyclerView使用详解)
- 城市文化笔记整理(一)
- C++之函数指针
- ACM:S: 取字符串
- test2
- Java线程:并发协作-生产者消费者模型
- RecyclerView使用
- unity 手机分辨率适配
- 基于Unity3D的2d拾宝游戏(二)
- android 图表框架 hellochart columnchart属性 其他同类
- Android面试遇到的小知识
- 正则基础
- 学习笔记——JAVA线程<6>线程的任务调度
- 39_面向对象_12_继承_方法的重写
- vue 项目 使用sass