android recycle 的简单用法

转载请标明出处:
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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android的Recycle缓存是一种用于提高应用程序性能的机制,它可以避免在加载相同数据时重复创建对象,从而节省了内存。Recycle缓存可以应用于RecyclerView、ListView等控件中,它可以缓存控件中的Item View,以便在滑动时可以重用这些View,避免不断地创建和销毁,从而提高了滑动的流畅性。在使用Recycle缓存时,需要注意一些细节,如确保不要在ViewHolder中直接保存数据等。 ### 回答2: Android中的Recycle缓存是指通过复用已经创建的对象来减少内存的使用和提高性能。在Android开发中,当不再需要某个对象时,可以通过将该对象添加到Recycle缓存中,以便在下次需要该类型的对象时,直接从缓存中获取,而不需要重复创建。 Recycle缓存主要应用于以下几个方面: 1. View的缓存:在使用ListView、RecyclerView等列表控件时,通过Recycle缓存可以复用已经创建的ItemView,避免频繁的创建和销毁,提高列表的滑动性能。 2. Bitmap的缓存:在加载和显示图片时,可以将Bitmap对象添加到Recycle缓存中,当再次需要显示相同的图片时,从缓存中获取,避免重新解码图片,减少内存的消耗。 3. Object Pool的缓存:在一些需要频繁创建和销毁对象的场景中,可以使用Recycle缓存来管理对象的创建和回收,避免频繁的GC操作,提高应用的性能。 Recycle缓存的实现可以通过一些方式来完成,比如使用LruCache来管理缓存对象的容器,通过软引用或者弱引用来管理缓存对象的生命周期,或者使用对象池来管理对象的复用。 总之,Recycle缓存是Android开发中一种重要的优化技术,通过复用已经创建的对象,可以减少不必要的内存开销和对象创建的时间,从而提高应用的性能和用户体验。 ### 回答3: Android 中的 Recycle 缓存是一种优化技术,用于复用已经创建的对象,以减少内存的使用和提高性能。在 Android 应用中,创建和销毁对象会占用很多内存和 CPU 资源,如果每次都重新创建对象,会导致频繁的内存分配和垃圾回收,影响应用的响应速度和流畅度。 Recycle 缓存的主要思想是将已经创建的对象在不需要时放入一个缓存池中,并在需要时从缓存池中取出复用,而不是重新创建。这样可以减少内存分配和垃圾回收的开销,提高应用的性能表现。 对于 Android 中的 RecyclerView 控件来说,Recycle 缓存起到了至关重要的作用。RecyclerView 是用于展示大量数据列表的一种常用控件,它通过复用列表项的视图来提高渲染性能。 当有新的列表项进入屏幕时,RecyclerView 会从 Recycle 缓存池中获取一个可复用的视图,并绑定新的数据进行显示。这样就避免了每次都创建新的视图和绑定数据的开销。 同时,RecyclerView 提供了一种 ViewHolder 模式,这是一种更加高效的复用方案。ViewHolder 持有列表项的视图,并缓存视图中的子视图引用,避免了频繁的 findViewById 操作。这也是 Recycle 缓存在 RecyclerView 中的具体应用。 总结来说,Android 的 Recycle 缓存是一种优化技术,用于复用已经创建的对象,提高性能和减少内存开销。在 RecyclerView 中,Recycle 缓存通过复用视图和 ViewHolder,提高列表渲染的性能和流畅度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值