Well, based on what you would like to have List CardViews .... you can define code like this in your row_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
android:background="?android:attr/selectableItemBackground"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cv">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:clickable="true"
android:padding="16dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/person_photo"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="16dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/person_name"
android:layout_toRightOf="@+id/person_photo"
android:layout_alignParentTop="true"
android:textSize="30sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/person_age"
android:layout_toRightOf="@+id/person_photo"
android:layout_below="@+id/person_name"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" €"
android:id="@+id/textView"
android:layout_marginLeft = "10dp"
android:layout_below="@+id/person_name"
android:layout_toEndOf="@+id/person_age" />
</RelativeLayout>
</android.support.v7.widget.CardView>
Then your layout containing RecyclerView:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include android:id="@+id/toolBar" layout="@layout/toolbar_top" app:layout_scrollFlags="scroll|enterAlways|snap"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:id="@+id/swipe"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerList"
android:layout_width="match_parent"
android:background="@color/colorAccent"
android:layout_height="wrap_content"/>
</android.support.v4.widget.SwipeRefreshLayout>
</android.support.design.widget.CoordinatorLayout>
and in your adapter CardViewcan be defined as the root element:
public class Adapter extends RecyclerView.Adapter<Adapter.StockViewHolder>{
List<Stock> stocks;
public Adapter(List<Stock> stocks){
this.stocks = stocks;
}
@Override
public StockViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_layout, parent, false);
StockViewHolder pvh = new StockViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(StockViewHolder holder, int position) {
holder.stockName.setText(stocks.get(position).getName());
holder.stockPrice.setText(stocks.get(position).getPrice());
Ion.with(holder.stockPhoto).error(R.mipmap.ic_launcher).load(stocks.get(position).getPhotoId());
}
@Override
public int getItemCount() {
return stocks.size();
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
public static class StockViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView stockName;
TextView stockPrice;
ImageView stockPhoto;
StockViewHolder(View itemView) {
super(itemView);
cv = (CardView)itemView.findViewById(R.id.cv);
stockName = (TextView)itemView.findViewById(R.id.person_name);
stockPrice = (TextView)itemView.findViewById(R.id.person_age);
stockPhoto = (ImageView)itemView.findViewById(R.id.person_photo);
}
}
}
and this will give you the following result:

which is the actual list CardViews.
, !