RecyclerView再学习

来源:互联网 发布:can总线控制伺服编程 编辑:程序博客网 时间:2024/05/25 19:57

RecyclerView再学习

public class MainActivity extends AppCompatActivity {    private RecyclerView mRecyclerView;    private List<String> titles = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        for (int i = 0; i < 100; i++) {            titles.add("标题" + i);        }        mRecyclerView = (RecyclerView) findViewById(R.id.myRecyclerView);        MyAdapt myAdapt = new MyAdapt();        // 创建线性布局管理器        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);        // 设置线性布局管理器的方向为垂直        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);        // 创建网格布局管理器 行数为3        GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);        // 设置网格布局管理器的方向        gridLayoutManager.setOrientation(GridLayoutManager.VERTICAL);        // 创建垂直瀑布流管理器        StaggeredGridLayoutManager staggeredGridLayoutManager =                 new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);        // 创建水平瀑布流管理器        //StaggeredGridLayoutManager staggeredGridLayoutManager =         //      new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL);        // 设置布局管理器        mRecyclerView.setLayoutManager(gridLayoutManager);        // 为RecyclerView设置适配器        mRecyclerView.setAdapter(myAdapt);    }    // 创建适配器继承Recycler的适配器    class MyAdapt extends RecyclerView.Adapter<MyViewHolder> {        @Override        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            View view = getLayoutInflater().inflate(R.layout.item_layout, null, false);            final MyViewHolder myViewHolder = new MyViewHolder(view);            // 为每个item设置点击事件            view.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    // 获取实际的位置                    int pos = myViewHolder.getAdapterPosition();                    Toast.makeText(MainActivity.this, "当前位置" + pos, Toast.LENGTH_SHORT).show();                }            });            // 这里返回的不是View            return myViewHolder;        }        @Override        public void onBindViewHolder(MyViewHolder holder, int position) {            // 在这里为每个item设置相关的属性            holder.setTv(titles.get(position));        }        @Override        public int getItemCount() {            // 获取总的个数            return titles.size();        }    }    // 创建ViewHolder继承于ViewHolder    class MyViewHolder extends RecyclerView.ViewHolder {        private TextView mTv;        private ImageView mImg;        public MyViewHolder(View itemView) {            super(itemView);            mImg = (ImageView) itemView.findViewById(R.id.imageView);            mTv = (TextView) itemView.findViewById(R.id.textView);        }        public void setTv(String text) {            mTv.setText(text);        }    }}
<android.support.v7.widget.RecyclerView    android:id="@+id/myRecyclerView"    android:layout_width="match_parent"    android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

这里写图片描述
标准写法

// 标准写法  // create a new viewView v = LayoutInflater.from(parent.getContext())             .inflate(R.layout.my_text_view, parent, false);
0 0