2017-07-17 11 views
-2

私はRecyclerviewを使って、StackerflowやYoutubeのすべてのチュートリアルなど、Cardviewsを作成しています。それは私のために働いたが、私はアプリを実行すると、それは全体のデータと1つだけのCardviewのようなものを示しています。メインRecyclerviewでCardviewを作成する

アクティビティー:

<android.support.v7.widget.RecyclerView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/reciclador" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="3dp" 
    android:scrollbars="vertical" /> 

レイアウトカード:データの

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    card_view:cardCornerRadius="4dp" 
    card_view:cardElevation="4dp"> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 


     <ImageView 
      android:id="@+id/imgRestaurant" 
      android:layout_width="400dp" 
      android:layout_height="100dp" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="18dp" 
      card_view:srcCompat="@drawable/soporte_it" /> 

     <TextView 
      android:id="@+id/lblNombre" 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/imgRestaurant" 
      android:layout_marginTop="10dp" 
      android:text="Restaurant Soporte" /> 

     <TextView 
      android:id="@+id/lblDescripcion" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/lblNombre" 
      android:layout_marginTop="22dp" 
      android:text="TextView" /> 

    </RelativeLayout> 
</android.support.v7.widget.CardView> 

クラス(clsRestaurants):

package com.soft.kukito.cardviewprueba; 

/** 
* Created by Hernan on 16/7/2017. 
*/ 

public class clsRestaurants { 
    private int imagen_r; 
    private String nombre_r; 
    private String descripcion_r; 

    public clsRestaurants(int imagen_r, String nombre_r, String descripcion_r) { 
     this.imagen_r = imagen_r; 
     this.nombre_r = nombre_r; 
     this.descripcion_r = descripcion_r; 
    } 

    public int getImagen_r() { 
     return imagen_r; 
    } 

    public String getNombre_r() { 
     return nombre_r; 
    } 

    public String getDescripcion_r() { 
     return descripcion_r; 
    } 
} 

アダプタ(restaurantAdapter):

package com.soft.kukito.cardviewprueba; 

import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 

import java.lang.reflect.Array; 
import java.util.ArrayList; 

import static android.os.Build.VERSION_CODES.M; 

/** 
* Created by Hernan on 16/7/2017. 
*/ 

public class restaurantsAdapter extends RecyclerView.Adapter<restaurantsAdapter.restaurantsViewHolder> 
{ 

    private ArrayList<clsRestaurants> restaurant_item; 

    public restaurantsAdapter(ArrayList<clsRestaurants> restaurant_item) { 
     this.restaurant_item = restaurant_item; 
    } 

    @Override 
    public restaurantsViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { 
     View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_cards,viewGroup,false); 
     restaurantsViewHolder restaurants = new restaurantsViewHolder(v); 
     return restaurants; 
    } 

    @Override 
    public void onBindViewHolder(restaurantsViewHolder restaurantsViewHolder, int i) { 
     restaurantsViewHolder.nombre.setText(restaurant_item.get(i).getNombre_r()); 
     restaurantsViewHolder.descripcion.setText(restaurant_item.get(i).getDescripcion_r()); 
     restaurantsViewHolder.imagen.setImageResource(restaurant_item.get(i).getImagen_r()); 
    } 

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

    public class restaurantsViewHolder extends RecyclerView.ViewHolder{ 
     TextView nombre,descripcion; 
     ImageView imagen; 

     public restaurantsViewHolder(View itemView) { 
      super(itemView); 

      nombre=(TextView)itemView.findViewById(R.id.lblNombre); 
      descripcion=(TextView) itemView.findViewById(R.id.lblDescripcion); 
      imagen=(ImageView)itemView.findViewById(R.id.imgRestaurant); 
     } 
    } 
} 

これは数時間後に頭痛を与えています。私は何を得る

Result and problem


期待される結果: Expected result

+0

アダプタクラスは追加していませんが、Dataクラス自体は2回追加されています。アダプタクラスを追加し、さらに好ましくはスクリーンショットを追加します –

+0

今すぐ画像を追加しました。アダプター – Natarr

+0

@ Natarr 'RecyclerView.Adapter'は実際には欠けています...疑いがある間に、あなたは'LinearLayout'の代わりに、' RelativeLayout'の代わりに(上下左右にネストすることもできます)...下端に「分割線」としてLinearLayoutを追加するだけで、以下のような「DividerItemDecoration」を偽造することさえできます。 –

答えて

2

は、各コーナーにその小さな灰色の領域を参照してください? CardViewに余白を追加してこの行を追加することができます。

android:layout_marginBottom="10dp" 

ので、それはあなたが簡単にそれはあなたの期待された結果のように見えるようにするために、左右の余白のために同じことを行うことができますもちろん、あなたのレイアウトのカードでこの

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    card_view:cardCornerRadius="4dp" 
    card_view:cardElevation="4dp" 
    android:layout_marginBottom="10dp"> 

のように見えるでしょう。

+0

それは私のために働いた!それは私が必要としていたすべてです、ありがとう! – Natarr

+0

ようこそ。 @Natarr – Andy

0

そこで、基本的recyclerviewは、デフォルトではディバイダーが付属していません。あなたは仕切りを追加することになっています。

https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration.html

これはあなたがディバイダことができる方法についてのアイデアを与えるだろう。

またthisはあなたにRecyclerViewとCardView

で動作するように明確なアイデアを与えるだろう
0

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

あなたのbuild.gradleファイルに

をこのファイルを追加し、リサイクルアダプタのxmlファイル内のコードの下にこれを使用します(行項目のコードを書いている)

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/card_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    card_view:cardBackgroundColor="@android:color/white" 
    card_view:cardCornerRadius="4dp" 
    card_view:cardElevation="4dp" 
    card_view:cardPreventCornerOverlap="false" 
    card_view:cardUseCompatPadding="true"> 
</android.support.v7.widget.CardView> 

としてこのタグを使用しますルートタグ...完了!

関連する問題