CardView是wrap_content列表项而不是match_parent

问题描述:

Card View包装内容而不是匹配父项。所有列表项目都被包装而不是匹配其宽度。 ScreenshotCardView是wrap_content列表项而不是match_parent

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.CardView 
     android:id="@+id/card_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:layout_margin="@dimen/card_margin" 
     android:elevation="3dp" 
     card_view:cardCornerRadius="@dimen/card_album_radius"> 

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

      <ImageView 
       android:layout_width="80dp" 
       android:layout_height="80dp" 
       android:id="@+id/Album_Art" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:src="@drawable/ic_google_music" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="@string/song_name" 
       android:id="@+id/Sname" 
       android:layout_alignParentTop="true" 
       android:layout_toRightOf="@+id/Album_Art" 
       android:layout_toEndOf="@+id/Album_Art" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:text="@string/artist_album" 
       android:id="@+id/Sdata" 
       android:layout_centerVertical="true" 
       android:layout_centerHorizontal="true" 
       android:layout_toRightOf="@+id/Album_Art" 
       android:layout_toEndOf="@+id/Album_Art"/> 

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

手动设置宽度的作品。当我将它设置为一个较大的dp值时,它工作正常,但列表项不在窗口中。我不明白为什么match_parent不起作用。任何导致如何解决这个问题将不胜感激。

+0

我猜想,你传递空父,当你吹你的'Adapter'布局。 –

+0

@MikeM。是的,我必须通过什么? –

+0

将'ViewGroup'传递给您在膨胀布局的方法。可能命名为“父”。 –

你在使用recyclerView吗? 如果是的话,你应该重写这个在布局管理器这样的:

layoutManager = new LinearLayoutManager(getActivity()) { 
      @Override 
      public RecyclerView.LayoutParams generateDefaultLayoutParams() { 
       return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
         ViewGroup.LayoutParams.WRAP_CONTENT); 
      } 
     }; 
    }