android recycle 的简单用法

来源:互联网 发布:知与行杂志版面费 编辑:程序博客网 时间:2024/06/14 01:20

转载请标明出处:
http://blog.csdn.net/lmj623565791/article/details/45059587;
本文出自:【张鸿洋的博客】

开始—>

这是我的整体布局

<?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="match_parent">    <android.support.v7.widget.RecyclerView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/recycle">    </android.support.v7.widget.RecyclerView></LinearLayout>

这是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="wrap_content"    android:padding="2dp">    <TextView        android:layout_width="match_parent"        android:layout_height="50dp"        android:gravity="center"        android:background="#5abfed"        android:textColor="#ffffff"        android:text="1"        android:id="@+id/text_char"/></LinearLayout>

我的activity

public class Recycler extends Activity {    private List<String> mDatas;    private RecyclerView recyclerView = null;    private HomeAdapter adapter;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.recycler);        recyclerView = (RecyclerView) findViewById(R.id.recycle);        //初始化数据        initData();        /*         *设置布局管理器         *1.linearlayout管理器         *2.gridlayout管理器         *3.横向的gridlayout管理器         *4.纵向的gridlayout管理器         */        recyclerView.setLayoutManager(new LinearLayoutManager(this));        recyclerView.setLayoutManager(new GridLayoutManager(this, 4));        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.HORIZONTAL));        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL));        //设置adapter        recyclerView.setAdapter(adapter = new HomeAdapter());    }    private void initData(){        mDatas = new ArrayList<String>();        for (int i = 'A'; i < 'z'; i++)        {            mDatas.add("" + (char)i);        }    }    //adapter的写法    class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder>    {        @Override        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            MyViewHolder holder = new MyViewHolder(                    LayoutInflater.from(Recycler.this).inflate(R.layout.recycle_item,                    parent, false));            return holder;        }        @Override        public void onBindViewHolder(MyViewHolder holder, int position) {            holder.tv.setText(mDatas.get(position));            ViewGroup.LayoutParams layoutParams = holder.tv.getLayoutParams();            layoutParams.height = (int) (Math.random()*100 + 100);            Log.i("xjxu", layoutParams.height + "");            holder.tv.setLayoutParams(layoutParams);        }        @Override        public int getItemCount() {            return mDatas.size();        }        public void addData(int position) {            mDatas.add(position, "Insert One");            notifyItemInserted(position);        }        public void removeData(int position) {            mDatas.remove(position);            notifyItemRemoved(position);        }        class MyViewHolder extends RecyclerView.ViewHolder        {            TextView tv;            public MyViewHolder(View itemView) {                super(itemView);                tv = (TextView) itemView.findViewById(R.id.text_char);            }        }    }}

添加和删除数据的时候只需要在你用的地方
适当的调用adapter.addData(position); 或者 adapter.removeData(position);

good 完成 我只有简单的用法,如果想深入了解,请去开始的标注的博客

0 0
原创粉丝点击