2016-09-15 6 views
2

Я создал следующий DialogFragment в XML:Почему дно моего фрагмента не отображается?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@id/mainLayout" 
       xmlns:ads="http://schemas.android.com/apk/res-auto" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:paddingLeft="5dp" 
       android:paddingRight="0dp" 
       android:orientation="vertical" > 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@id/quoteLayout" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:paddingLeft="5dp" 
        android:paddingRight="0dp" 
        android:orientation="vertical" > 
    </LinearLayout> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@id/buttonLayout" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:paddingLeft="5dp" 
        android:paddingRight="0dp" 
        android:orientation="vertical" > 
     <Button 
      android:id="@id/getMoreButton" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/getMore" 
      android:onClick="getMore" /> 
    </LinearLayout> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@id/adLayout" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:paddingLeft="5dp" 
        android:paddingRight="0dp" 
        android:orientation="vertical" > 
     <com.google.android.gms.ads.AdView 
      android:id="@+id/adView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentBottom="true" 
      ads:adSize="BANNER" 
      ads:adUnitId="@string/banner_ad_unit_id"> 
     </com.google.android.gms.ads.AdView> 
    </LinearLayout> 
</LinearLayout> 

я работал вместе на участке quoteLayout и его исполняющей как я хочу. Теперь я хотел заполнить другие разделы кнопкой и объявлением.

Проблема в том, что в других частях mainLayout ничего не появляется. Конец экрана - это конец quoteLayout.

Любые идеи?

ответ

3

У вас есть ориентация, установленная как vertical, но у ваших детей с линейным проживанием у вас есть атрибут android:layout_height как match_parent, который заполняет макет. Он должен быть wrap_content или использовать weights, чтобы лучше организовать, как он должен выглядеть. По крайней мере, это то, что выглядит неправильно для меня. Попробуйте заменить match_parent на wrap_content или использовать атрибут weight. Обратите внимание, что если вы используете weight набор android:layout_height' to 0dp.`

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@id/mainLayout" 
      xmlns:ads="http://schemas.android.com/apk/res-auto" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingLeft="5dp" 
      android:paddingRight="0dp" 
      android:orientation="vertical" > 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@id/quoteLayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingLeft="5dp" 
       android:paddingRight="0dp" 
       android:orientation="vertical" > 
</LinearLayout> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@id/buttonLayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingLeft="5dp" 
       android:paddingRight="0dp" 
       android:orientation="vertical" > 
    <Button 
     android:id="@id/getMoreButton" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="@string/getMore" 
     android:onClick="getMore" /> 
</LinearLayout> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@id/adLayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingLeft="5dp" 
       android:paddingRight="0dp" 
       android:orientation="vertical" > 
    <com.google.android.gms.ads.AdView 
     android:id="@+id/adView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true" 
     ads:adSize="BANNER" 
     ads:adUnitId="@string/banner_ad_unit_id"> 
    </com.google.android.gms.ads.AdView> 
</LinearLayout> 

0

Вы установите котировки макет в match_height в другом LinearLayout, что также соответствует высоте. Расположение кнопок и adLayout происходит просто в нижней части экрана.

Чтобы исправить это, я хотел бы использовать веса макет так:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@id/mainLayout" 
       xmlns:ads="http://schemas.android.com/apk/res-auto" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:paddingLeft="5dp" 
       android:paddingRight="0dp" 
       android:orientation="vertical" > 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@id/quoteLayout" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="0.5" 
        android:paddingLeft="5dp" 
        android:paddingRight="0dp" 
        android:orientation="vertical" > 
    </LinearLayout> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@id/buttonLayout" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="0.3" 
        android:paddingLeft="5dp" 
        android:paddingRight="0dp" 
        android:orientation="vertical" > 
     <Button 
      android:id="@id/getMoreButton" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/getMore" 
      android:onClick="getMore" /> 
    </LinearLayout> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@id/adLayout" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="0.2" 
        android:paddingLeft="5dp" 
        android:paddingRight="0dp" 
        android:orientation="vertical" > 
     <com.google.android.gms.ads.AdView 
      android:id="@+id/adView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_alignParentBottom="true" 
      ads:adSize="BANNER" 
      ads:adUnitId="@string/banner_ad_unit_id"> 
     </com.google.android.gms.ads.AdView> 
    </LinearLayout> 
    </LinearLayout> 

Обратите внимание, что я изменил layout_height к 0dp и добавил layout_weight тег. Этот тег делает так, чтобы ваш макет настраивался на определенный процент высоты, основанный на введенных значениях.

Вы также можете использовать wrap_content для высоты.