3

Unten ist das Layout eines Recyclerview.I möchte eine vertikale Ansicht links von jedem Element des Layouts, so dass es die Höhe des Elements entspricht.Ich verwendete unterhalb Code -Ansicht mit Höhe match_parent nicht sichtbar in recyclerview item

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:background="@drawable/foodvitebackground"> 

    <TextView 
     android:id="@+id/invitename" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="18dp" 
     android:textColor="@color/adsd" 
     android:text="fasf" 
     android:layout_marginTop="10dp" 
     android:layout_marginLeft="15dp"/> 

    <TextView 
     android:id="@+id/name" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/invitename" 
     android:layout_marginTop="8dp" 
     android:layout_marginLeft="15dp" 
     android:layout_toLeftOf="@+id/profileimage" 
     android:gravity="left" 
     android:textColor="@color/foodvite_invitename" 
     android:textSize="20dp" 
     android:text="Fill-a Pita"/> 

    <TextView 
     android:id="@+id/jJoinTime" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/name" 
     android:layout_marginTop="8dp" 
     android:layout_marginLeft="15dp" 
     android:textSize="12dp" 
     android:text="Today,8:30PM" 
     android:textColor="@color/joinTime"/> 

    <com.mikhaellopez.circularimageview.CircularImageView 
     android:id="@+id/profileimage" 
     android:layout_width="@dimen/hundred_dp" 
     android:layout_height="@dimen/hundred_dp"  
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="15dp" 
     android:scaleType="fitCenter"/> 

    <TextView 
     android:id="@+id/invitescount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="20" 
     android:textColor="@color/white" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:background="@drawable/ret" 
     android:layout_marginBottom="15dp" 
     android:layout_marginRight="15dp" 
     android:layout_alignBottom="@+id/message"  
     android:layout_alignRight="@+id/profileimage" 
     android:layout_alignEnd="@+id/profileimage"/> 

    <View 
     android:id="@+id/leftbar" 
     android:layout_width="6dp" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:background="@drawable/foodviterespoded"/> 

</RelativeLayout> 

mit obigem Code ich sehe nicht, Ansicht mit id leftbar visible.However wenn i Höhe dieser Ansicht von match_parent bis zu einem gewissen numerischen Wert zu ändern wie 160dp dann sehe ich die linke Balkenansicht visible.Why dies happing.And ich möchte nicht Höhe in numerischen Wert bcoz ich möchte meine Ansicht auf die Höhe des Artikels und Höhe des Elements zu dehnen kann in verschiedenen Gerät unterschiedlich sein.

+0

ich sicherstellen möchten, ich verstehe, was Sie tun möchten. Sie wollen ein 'RecyclerItem', das ist die volle Größe des übergeordneten' RecyclerView.' korrekt? Mit dem 'android: id =" @ + id/leftbar "' versuchen Sie, diesen Artikel vom Bildschirm zu haben? und nur sichtbar, wenn der Benutzer scrollt oder die Sichtbarkeit geändert werden soll. Es würde helfen, wenn Sie eine Zeichnung von dem, was Sie wollen, mit Etiketten zur Verfügung stellen könnten. – VirtualProdigy

+0

@VirtualProdigy Nein Ich möchte nur, dass die linke Balkenansicht dieselbe Höhe wie die Höhe eines Elements einer Recycleransicht hat. –

+0

set 'android: layout_alignParenTop =" true "' & 'android: layout_alignParentBottom =" true "'. Die linke Leiste ist dann auch die Höhe des übergeordneten Containers – VirtualProdigy

Antwort

0

Können Sie versuchen mit android:layout_alignParentTop="true" und android:layout_alignParentBottom="true" auf die Ansicht mit der ID "leftbar" eingestellt.

Aktualisierung:

versuchen Sie dies.

<View 
     android:id="@+id/leftbar" 
     android:layout_width="6dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/invitename" 
     android:layout_alignBottom="@+id/jJoinTime" 
     android:background="@drawable/foodviterespoded"/> 
+0

Ich habe das versucht .. Ich konnte nichts sehen leftbar view damit –

+0

überprüfen Sie meine aktualisierte Antwort. – Bob

0

Sie geben die Höhe als Wrap-Inhalt für das übergeordnete relativelayout die die leftbar Ansicht zu entfernen. Versuchen Sie, die relative Höhe des übergeordneten Layouts als übergeordnetes Element festzulegen

+1

RecyclerView-Layout-Element sollte keine Übereinstimmungspaarhöhe haben, da es die gesamte Bildschirmhöhe einnimmt. h. jeder Zeilenposten ist die Bildschirmhöhe. – Bob

0

Berechnen Sie die Zellenhöhe der Recycler-Ansicht im Konstruktor des Ansichtshalters.

itemView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); 
height = itemView.getMeasuredHeight(); 

die Höhe des Teilers Set mit den oben berechneten Höhe in onBindViewHolder()

RelativeLayout.LayoutParams divParams = (RelativeLayout.LayoutParams) 
divider.getLayoutParams(); 
divParams.height = height;//Add any top or bottom margin(in pixel) specified 
divider.setLayoutParams(divParams);