zoukankan      html  css  js  c++  java
  • RecyclerView用法

    主界面布局:
    <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" >
    
      <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_centerVertical="true"
        android:background="@android:color/transparent"
        android:scrollbars="none" />
    
    </RelativeLayout>

    Item布局:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="120dp"
      android:layout_height="120dp" >
    
      <ImageView
        android:id="@+id/iv_image"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:scaleType="centerCrop" />
    
    </RelativeLayout>
    RecyclerView的数据适配器,MyAdapter.java


    public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    
      private int[] mDataset; // 外面传入的数据
    
      public static class ViewHolder extends RecyclerView.ViewHolder {
    
        ImageView mImageView;
    
        // TODO Auto-generated method stub
        public ViewHolder(View v) {
          super(v);
        }
    
      }
    
      public MyAdapter(int[] mDataset) {
        this.mDataset = mDataset;
      }
    
      /**
       * 获取总的条目数量
       */
      @Override
      public int getItemCount() {
        // TODO Auto-generated method stub
        return mDataset.length;
      }
    
      /**
       * 创建ViewHolder
       */
      @Override
      public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // TODO Auto-generated method stub
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycleview, parent, false);
        ViewHolder holder = new ViewHolder(v);
        holder.mImageView = (ImageView) v.findViewById(R.id.iv_image);
        return holder;
      }
    
      /**
       * 将数据绑定到ViewHolder上
       */
      @Override
      public void onBindViewHolder(ViewHolder holder, int position) {
        // TODO Auto-generated method stub
        holder.mImageView.setImageResource(mDataset[position]);
      }
    }
    最后,就在Activity里使用这个RecyclerView,MainActivity.java


    public class MainActivity extends Activity {
    
      /** RecyclerView对象 */
      private RecyclerView recyclerView;
      /** 图片资源 */
      private int[] mDataset;
      /** 数据适配器 */
      private MyAdapter mAdapter;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
        // 初始化图片数据
        mDataset = new int[] { R.drawable.a, R.drawable.b, //
            R.drawable.c, R.drawable.d, R.drawable.e, //
            R.drawable.f, R.drawable.g, R.drawable.h, R.drawable.i };
        // 设置布局管理器
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        recyclerView.setLayoutManager(linearLayoutManager);
        // 设置适配器
        mAdapter = new MyAdapter(mDataset);
        recyclerView.setAdapter(mAdapter);
      }
    }






  • 相关阅读:
    开源APM应用性能管理工具调研
    Inside ARC — to see the code inserted by the compiler
    报表应用系统中怎样正确使用图表功能
    创建cifs系统案例之“实现将Windows磁盘共享至Linux”
    Eclipse快捷键 10个最有用的快捷键
    如何生成KeyStore
    android中调用系统的发送短信、发送邮件、打电话功能
    android自带theme
    Android 报错:Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
    Android oncreate onupgrade什么时候被调用
  • 原文地址:https://www.cnblogs.com/zhaoleigege/p/5123916.html
Copyright © 2011-2022 走看看