Listview с кнопкой ниже не работает должным образом - PullRequest
0 голосов
/ 15 июня 2011

У меня есть ListView в диалоговом окне, и мне нужно показать кнопку после списка.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" android:layout_height="wrap_content">  
<TextView   android:id="@+id/tvwGameOver" android:layout_weight="1" android:gravity="center"
            android:textSize="25sp" android:visibility="gone"
            android:layout_width="fill_parent" android:layout_height="wrap_content"/>
<LinearLayout 
  android:id="@+id/lloPlayerNames" xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" android:layout_height="wrap_content" 
  android:orientation="horizontal" android:footerDividersEnabled="true"
  android:headerDividersEnabled="true" android:layout_below="@id/tvwGameOver">
  <TextView
    android:id="@+id/tvwGameNumberHeader" android:layout_weight="1" android:gravity="right"
    android:text="@string/scores_GameNumber" android:textSize="12sp"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginRight="13sp"/>
  <TextView
    android:id="@+id/tvwPlayer0Name" android:layout_weight="1" android:gravity="right"
    android:textSize="12sp" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginRight="13sp"/>
  <TextView
    android:id="@+id/tvwPlayer1Name" android:layout_weight="1" android:gravity="right"
     android:textSize="12sp"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginRight="13sp"/>
  <TextView     
    android:id="@+id/tvwPlayer2Name" android:layout_weight="1" android:gravity="right"
     android:textSize="12sp"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginRight="13sp"/>
  <TextView     
    android:id="@+id/tvwPlayer3Name" android:layout_weight="1" android:gravity="right"
    android:textSize="12sp"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_marginRight="13sp"/>
</LinearLayout>


  <ListView
   android:id="@+id/lvwScores" android:layout_below="@id/lloPlayerNames"
   android:layout_width="fill_parent" android:layout_height="wrap_content"  
   android:divider="#FFFFFF" android:dividerHeight="1dip" 
   android:layout_weight="1"
   android:footerDividersEnabled="true" android:headerDividersEnabled ="true"/>

<Button android:id="@+id/btnOK" 
  android:layout_height="wrap_content" android:layout_width="120dip" 
  android:layout_weight="1"
  android:text="OK" android:layout_centerHorizontal="true" 
android:layout_alignParentBottom="true" 

   />
</RelativeLayout>

Проблема в том, что, когда список становится слишком большим, он просто пропускает кнопку, а кнопка располагается над списком.

Я пытался добавить android: layout_below = "@ id / lvwScores" к кнопке, но затем, когда список пуст, я получаю кнопку, которая работает от нижней части экрана до нижней части списка.

Если я удаляю андроид: layout_alignParentBottom = "true", то диалог становится маленьким.

В конце дня я ожидаю, что список заполняет большую часть экрана, даже если его часть все еще пуста (это экран результатов) с кнопкой внизу.

Есть идеи?

Вот как это выглядит, когда пусто: enter image description here

Это замечательно, за исключением того, что когда список растет и достигает дна, он не останавливается на кнопке.

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Можете ли вы дать представлению списка или контейнеру представления списка поле внизу, которое является высотой кнопки? В качестве теста задайте для кнопки высоту 30 провалов, а для контейнера списка или просмотра списка должно быть нижнее поле в 30 провалов, чтобы посмотреть, не переместится ли он за кнопкой.

0 голосов
/ 15 июня 2011

Кнопка должна иметь android:layout_below="@id/lvwScores"

alignParentBottom - не лучший подход для RelativeLayouts, которые не заполняют родителей.

...