HarshitVaish
10/1/2016 - 7:21 AM

Recycler View With Card View

Recycler View With Card View

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="5dp"
    app:cardCornerRadius="5dp">

    <LinearLayout
        android:orientation="horizontal"
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        
        <ImageView
            android:id="@+id/image_row"
            android:layout_margin="7dp"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:contentDescription="Thumbnail"
            android:src="@drawable/rectangle"/>
        
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent">
            
            <TextView
                android:id="@+id/tv_title"
                android:textSize="18sp"
                android:textStyle="bold"
                android:textColor="@color/black"
                android:text="Title"
                android:layout_margin="7dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <TextView
                android:id="@+id/tv_description"
                android:textSize="15sp"
                android:textStyle="italic"
                android:textColor="@color/black"
                android:text="Description"
                android:layout_marginLeft="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
        
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            
            <ImageView
                android:src="@android:drawable/ic_delete"
                android:tint="@color/black"
                android:layout_margin="7dp"
                android:contentDescription="Delete image"
                android:id="@+id/image_row_delete"
                android:layout_width="20dp"
                android:layout_height="20dp" />

            <ImageView
                android:src="@android:drawable/ic_input_add"
                android:tint="@color/colorAccent"
                android:layout_margin="7dp"
                android:contentDescription="Add image"
                android:id="@+id/image_row_add"
                android:layout_width="20dp"
                android:layout_height="20dp" />
        </LinearLayout>


    </LinearLayout>



</android.support.v7.widget.CardView>
dependencies {
    compile 'com.android.support:recyclerview-v7:24.0.0'
    compile 'com.android.support:cardview-v7:24.0.0'
}
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.techpalle.karan.personaldictionary.R;
import com.techpalle.karan.personaldictionary.model.Word;
import java.util.List;

public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.MyViewHolder> {

    private List<POJO> mData;
    private LayoutInflater mInflater;

    public RecyclerAdapter(Context context, List<Word> mData) {
        this.mData = mData;
        this.mInflater = LayoutInflater.from(context);
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.list_item, parent, false);
        MyViewHolder holder = new MyViewHolder(view);
        return holder;
    }

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

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        POJO currentPojo = mData.get(position);
        holder.setData(currentPojo, position);
    }

    class MyViewHolder extends RecyclerView.ViewHolder{

        private TextView mTextWord;
        private ImageView mImageHighlight, mImageView;
        private int position;
        private Word currentWord;

        public MyViewHolder(View itemView) {
            super(itemView);
            mTextWord = (TextView) itemView.findViewById(R.id.text_view_row_word);
            mImageHighlight = (ImageView) itemView.findViewById(R.id.image_highlight);
            mImageView = (ImageView) itemView.findViewById(R.id.image_view_word);
        }

        public void setData(Word currentWord, int position) {
            this.position = position;
            this.currentWord = currentWord;
            mTextWord.setText(currentWord.getName());
            
        }
    }
}
public class POJO {
    private String text1, text2, text3;

    public POJO() {
    }

    public POJO(String text1, String text2, String text3) {
        this.text1 = text1;
        this.text2 = text2;
        this.text3 = text3;
    }

    public String getText1() {
        return text1;
    }
    
    public String getText2() {
        return text2;
    }
    
    public String getText3() {
        return text3;
    }
}
private void setupRecyclerView(View view) {

        ArrayList<POJO> arrayListData= getData();
        RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
        RecyclerAdapter recyclerAdapter = new RecyclerAdapter(getActivity(), arrayListData);
        recyclerView.setAdapter(recyclerAdapter);

        LinearLayoutManager linearLayoutManager= new LinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(linearLayoutManager);

        // Items show default animation even if we do not set this
        recyclerView.setItemAnimator(new DefaultItemAnimator());
    }