2016-11-13 12 views
0

Ich benutze recylcers Ansicht und jede Zeile enthalten cardview.Ich muss Cardview volle Breite zeigen, auch meine textview Inhalt ist weniger .Ich habe versucht viele Möglichkeiten, aber keine Verwendung.android volle Breite cardview in Recyclerview

xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/primaryDarkColor" 
    android:orientation="vertical"> 
    <android.support.v7.widget.CardView 
     xmlns:card_view="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/cardview" 
     android:background="#ffffff" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:elevation="8dp" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="4dp" 
     android:layout_marginBottom="4dp" 
     > 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 

      android:padding="2dp" 
      android:orientation="horizontal"> 
      <TextView 
       android:id="@+id/content" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:paddingLeft="3dp" 
       android:text="content" 
       android:layout_weight="1" 
       android:textColor="#ff212121" 

       /> 


     </LinearLayout> 

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


</LinearLayout> 

enter image description here

Auch habe ich Breite gesetzt Eltern entsprechen, aber keine Verwendung.

Aktualisiert

Recycler Ansicht

<LinearLayout 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" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#e5e5e5" 
     android:orientation="horizontal"> 


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

    </LinearLayout> 
    </LinearLayout> 

Aktualisiert: Fest mit folgenden Methode

ich mein Problem behoben habe mit folgenden Antwort

Die Dokumentation für aufblasen:

Eine neue Ansichtshierarchie von der angegebenen XML-Ressource aufblasen. Wirft InflateException, wenn ein Fehler vorliegt.

Parameter Ressourcen-ID für eine XML-Layout-Ressource zu laden (zB R.layout.main_page) Stammansicht der Elternteil der erzeugten Hierarchie zu sein (wenn attachToRoot wahr ist) oder auch einfach ein Objekt, das liefert eine Reihe von LayoutParams-Werten für das Stammverzeichnis der zurückgegebenen -Hierarchie (wenn attachToRoot den Wert false hat). attachToRoot Ob die überhöhte Hierarchie an den Root-Parameter angehängt werden sollte? Wenn false, wird root nur verwendet, um die korrekte Unterklasse von LayoutParams für die Stammansicht in der XML zu erstellen. Rückgabe Die Root-Ansicht der aufgeblähten Hierarchie. Wenn root angegeben wurde und attachToRoot true ist, ist dies root; Ansonsten ist es die Wurzel der aufgeblähten XML-Datei.

Es ist hier wichtig, nicht wahr zu liefern, aber die Eltern beliefern:

LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.card_listitem, parent, false); 

die Ansicht Mutter Versorgung läßt den inflater weiß, was zu verwenden layoutparams zu. Wenn Sie den Parameter false angeben, wird er noch nicht an den übergeordneten Parameter angehängt. Das wird der RecyclerView für Sie tun.

Diese Antwort hat mir geholfen, mein Problem

Ref zu beheben: CardView layout_width="match_parent" does not match parent RecyclerView width

+0

Verwendung paddingLeft und paddingRight statt layout_marginLeft und layout_marginRight in Ihrem cardview. Können Sie Ihre XML-Datei anzeigen, die die Recycler-Ansicht enthält? – csabapap

+0

@ csabapap.Thanks, aber ich habe bereits versucht, indem Sie cardview.even obwohl es zeigt – iCoders

+0

Sie sollten Ihre XML-Datei hochladen, die die Recycler-Ansicht enthält, weil das Problem wahrscheinlich dort. – csabapap

Antwort

0

Sie verwenden layout_margin in CardView Tag, sie entfernen.Dies ist, wie Ihr Code sollte wie folgt aussehen:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/primaryDarkColor" 
android:orientation="vertical"> 
<android.support.v7.widget.CardView 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/cardview" 
    android:background="#ffffff" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:elevation="8dp"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     android:padding="2dp" 
     android:orientation="horizontal"> 
     <TextView 
      android:id="@+id/content" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingLeft="3dp" 
      android:text="content" 
      android:layout_weight="1" 
      android:textColor="#ff212121" 

      /> 

    </LinearLayout> 

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

+0

@ Bhavesh.Thanks, aber ich habe bereits versucht, indem Sie cardview.even obwohl es zeigt – iCoders

+0

was ist über die rootView des Layouts, wo Sie RecyclerView platziert haben, haben Sie schon da überprüft? –

+0

@ Bhavesh.updated Frage – iCoders

0

alle layoutsz sie

<LinearLayout 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" 
android:orientation="vertical"> 

<LinearLayout 
    android:layout_width="match_parent" 
    **android:layout_height="wrap_content"** 
    android:background="#e5e5e5" 
    android:orientation="horizontal"> 


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

</LinearLayout> 
</LinearLayout> 

Von dem, was Sie sehen können, sind Sie Inhalte auf dem zweiten linearen Layout Einwickeln, einfach Änderungen vornehmen dort und alles ist gut.

Achten Sie darauf, dass Sie NICHT rücksichtslos mit diesem horizontalen linearen Layout übereinstimmen, es könnte überlaufen!

+0

@ Nicholos.let mich versuchen.Vielen Dank – iCoders

0

Die Breite des zweiten LinearLayouts ist wrap_content. Es sollte Match_parent sein. Sie sollten das zweite Layout löschen, da es nutzlos ist. Setzen Sie den ersten LinearLayout-Hintergrund auf # e5e5e5.

+0

sorry.that ich habe schon versucht, keine Verwendung.Vielen Dank – iCoders

0

versuchen Sie, Rand und Padding zu Ihrem cardview zu verwenden, und entfernen Sie alle Randattribute. Ich hoffe, es wird funktionieren. Und versuchen Sie, die Verwendung von Layouts zu reduzieren. android: layout_margin = "5dp" android: padding = "5dp"

0

Ich habe mein Problem behoben mit folgenden Antwort

Die Dokumentation für inflate:

aufpumpen eine neue Ansicht Hierarchie aus der angegebene XML-Ressource. Wirft InflateException, wenn ein Fehler vorliegt.

Parameter Ressourcen-ID für eine XML-Layout-Ressource zu laden (zB R.layout.main_page) Stammansicht der Elternteil der erzeugten Hierarchie zu sein (wenn attachToRoot wahr ist) oder auch einfach ein Objekt, das liefert eine Reihe von LayoutParams-Werten für das Stammverzeichnis der zurückgegebenen -Hierarchie (wenn attachToRoot den Wert false hat). attachToRoot Ob die überhöhte Hierarchie an den Root-Parameter angehängt werden sollte? Wenn false, wird root nur verwendet, um die korrekte Unterklasse von LayoutParams für die Stammansicht in der XML zu erstellen. Rückgabe Die Root-Ansicht der aufgeblähten Hierarchie. Wenn root angegeben wurde und attachToRoot true ist, ist dies root; Ansonsten ist es die Wurzel der aufgeblähten XML-Datei.

Es ist hier wichtig, nicht wahr zu liefern, aber die Eltern beliefern:

LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.card_listitem, parent, false); 

Die Versorgung der parent View können die inflater wissen, was zu verwenden layoutparams zu. Wenn Sie den Parameter false angeben, wird er noch nicht an den übergeordneten Parameter angehängt. Das wird der RecyclerView für Sie tun.

Diese Antwort hat mir geholfen, mein Problem

Ref zu beheben: CardView layout_width="match_parent" does not match parent RecyclerView width

+0

Bitte liefern Sie sowohl Ihre Java-Seite Code und Ihre Xml das nächste Mal! – Nicholas

+0

@NicholasChen. Ich habe bereits mein Problem gelöst. Ich habe answe hinzugefügt – iCoders