2016-02-10 167 views
0

我有一個不顯示特定佈局的回收站視圖。我知道佈局是問題,因爲我嘗試了不同的佈局,並且正在顯示它們。我不會在控制檯中發現錯誤的佈局錯誤。RecyclerView不顯示佈局

這如下佈局結構:

<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:background="#000" 
    android:layout_height="match_parent"> 

    <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/border_color" 
     app:layout_heightPercent="30%"> 

    </android.support.percent.PercentRelativeLayout> 
</android.support.percent.PercentRelativeLayout> 

我看到它呈現正常,但可能是有點問題的。我希望每個回收商的物品都有30%的高度,這就是我使用app:layout_heightPercent="30%"的原因。如果我刪除外部佈局,則內部佈局將佔用所有空間。我怎樣才能達到這個30%的高度,因爲顯然這是行不通的。

+0

爲什麼選d你有兩個PercentRelativeLayout?如果你這樣做,什麼都不會顯示 – hehe

+0

我在問題中解釋了它。這不是我的整個佈局。內部佈局中有很多東西。我使用其中2個的唯一原因是因爲如果我在預覽時只使用了內部的一個,它不僅佔用了所有空間的30% –

回答

0

試試這個: -

我已經設置高度100dp父PercentRelativeLayout。它爲我工作。

<android.support.percent.PercentRelativeLayout 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:background="#000" 
     android:layout_height="100dp"> 

     <android.support.percent.PercentRelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#888888" 
      app:layout_heightPercent="30%"> 

     </android.support.percent.PercentRelativeLayout> 
    </android.support.percent.PercentRelativeLayout> 
0

對於有同樣的問題的人,給一個ID,外佈局,或任何佈局的回收項目可能有outer

在你持有人將其定義:

outer = (PercentRelativeLayout) view.findViewById(R.id.outer); 

和裏面你的onBindViewHolder以編程方式設定你的身高:

Display display = ((Activity)ctx).getWindowManager().getDefaultDisplay(); 
      Point size = new Point(); 
      display.getSize(size); 
      //int width = size.x; 
      int height = size.y; 

      ((MyRecyclerHolder) holder).outer.getLayoutParams().height = height/3;(or whatever ratio you want)