Android - RecyclerView

0.添加引用

compile 'com.android.support:recyclerview-v7:23.4.0'

命名空間:java

android.support.v7.widget.RecyclerView
android.support.v7.widget.LinearLayoutManager

1.首先添加控件

<android.support.v7.widget.RecyclerView
    android:id="@+id/activity_recycler_view_recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>

2.子佈局

<ImageView
        android:id="@+id/recyclerview_item_iv"
        tools:background="@drawable/img2"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:layout_width="80dp"
        android:layout_height="80dp"/>

    <TextView
        android:id="@+id/recyclerview_item_tv"
        android:text="This is a computer!"
        android:layout_marginTop="30dp"
        android:textSize="20dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

3.Adpater

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> {

    private List<String> list;
    private Context mContext;

    public MyRecyclerViewAdapter(Context context, List<String> list) {
        mContext=context;
        this.list = list;
    }

    static class ViewHolder extends RecyclerView.ViewHolder {

        ImageView imageView;
        TextView textView;
        View view;
        public ViewHolder(View itemView) {
            super(itemView);
            textView=(TextView)itemView.findViewById(R.id.recyclerview_item_tv);
            imageView=(ImageView)itemView.findViewById(R.id.recyclerview_item_iv);
            view=itemView;
        }
    }

    @Override
    public MyRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view =View.inflate(parent.getContext(),R.layout.recyclerview_item_layout,null);
        final ViewHolder holder = new ViewHolder(view);

        //整個子項點擊事件
        holder.view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext, "Item:"+String.valueOf(holder.getAdapterPosition()), Toast.LENGTH_SHORT).show();
            }
        });

        // 圖片點擊事件
        holder.imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mContext, String.valueOf(holder.getAdapterPosition()), Toast.LENGTH_SHORT).show();
            }
        });

        return holder;
    }

    @Override
    public void onBindViewHolder(MyRecyclerViewAdapter.ViewHolder holder, int position) {

        holder.textView.setText(list.get(position));
        if(position%2==0){
            holder.imageView.setImageResource(R.drawable.img2);
        }else {
            holder.imageView.setImageResource(R.drawable.img3);
        }
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
}

4.MainActivity

//初始化數據
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add("This is computer "+String.valueOf(i));
        }

        RecyclerView recyclerView=(RecyclerView)findViewById(R.id.activity_recycler_view_recyclerView);
        MyRecyclerViewAdapter adapter=new MyRecyclerViewAdapter(this,list);
        recyclerView.setAdapter(adapter);

        //設置佈局方式
        LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(linearLayoutManager);

        // 瀑布式流佈局                                                              // 3 表示佈局的列數
        /*StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(layoutManager);*/

5.點擊回到頂部

recyclerView.scrollToPosition(0)
相關文章
相關標籤/搜索