2016-02-10 4 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 o у вас есть два 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

Для тех, кто с той же проблемой, дают идентификатор внешней компоновки, или любой другой макет ваши вопросы об утилизации может иметь 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) 
Смежные вопросы