高度match_parent视图在recyclerview项目中不可见

时间:2016-05-04 14:40:00

标签: android android-layout android-recyclerview android-view

以下是recyclerview项目的布局。我想在每个布局项目的左侧创建一个垂直视图,使其与项目的高度相匹配。我在代码下面使用 -

<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>

使用上面的代码,我看不到带有id左侧栏的视图。但是如果我将该视图的高度从match_parent更改为某个数值,如160dp,那么我看到左侧栏视图可见。为什么会发生这种情况。我不喜欢我想在数值bcoz中设置高度我希望我的视图伸展到完成项目的高度,并且项目的高度可能在不同的设备中有所不同。

3 个答案:

答案 0 :(得分:0)

您可以尝试将android:layout_alignParentTop="true"android:layout_alignParentBottom="true"设置为带有ID&#34;左栏&#34;的视图。

更新

试试这个。

<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"/>

答案 1 :(得分:0)

您将高度作为父relativelayout的换行内容,这将删除左侧栏视图。尝试将父相对布局高度设置为匹配父

答案 2 :(得分:0)

在视图持有者的构造函数中计算回收器视图的单元格高度。

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

在onBindViewHolder()中使用上面计算的高度设置分隔线的高度

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