2011-04-15 77 views
2

我終於設法讓我的列表正確顯示(http://stackoverflow.com/questions/5662277/how-to-line-up-intger-output-in-custom-android-dialog)。按鈕下面的列表不顯示

現在我試圖在列表下面添加一個按鈕。會發生什麼情況是,當列表太大時,按鈕不會顯示。 該列表是可滾動的,但就是這樣。 另外,滾動條覆蓋了一些數據。

這是主要的XML文件:

<?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="fill_parent"> 

    <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"> 
     <TextView  android:id="@+id/tvwPlayer1Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer2Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer3Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer4Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_margin="2dp"/> 
    </LinearLayout> 
    <ListView android:id="@+id/lvwScores" android:layout_below="@id/lloPlayerNames" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" /> 

    <Button android:id="@+id/btnOK " 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
     android:layout_below="@id/lvwScores" android:layout_weight="1" 
    android:text="OK" android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

這是一個用於行:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> 
    <TextView android:id="@+id/tvwPlayer1Score" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/tvwPlayer2Score" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/tvwPlayer3Score" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/tvwPlayer4Score" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
</LinearLayout> 

我試圖改變主要爲線性佈局,但使得它更糟糕!這份名單看起來像是一次暴飲暴食,超薄。


嘗試:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <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"> 
     <TextView  android:id="@+id/tvwPlayer1Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer2Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer3Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer4Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_marginRight="2dp"/> 
    </LinearLayout> 
    <Button android:id="@+id/btnOK" 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:text="OK" android:layout_centerHorizontal="true" 
    layout_alignParentBottom="true"/> 
    <ListView android:id="@+id/lvwScores" android:layout_above="@id/btnOK" android:layout_below="@id/lloPlayerNames" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" android:layout_weight="1"/> 

</RelativeLayout> 

什麼,我得到的是: enter image description here

當我嘗試:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
       android:orientation="vertical">> 

    <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"> 
     <TextView  android:id="@+id/tvwPlayer1Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer2Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer3Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
     <TextView  android:id="@+id/tvwPlayer4Name" android:layout_weight="1" android:gravity="right" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_marginRight="2dp"/> 
    </LinearLayout> 
    <ListView android:id="@+id/lvwScores" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" android:layout_weight="1"/> 
    <Button android:id="@+id/btnOK" 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:text="OK" android:layout_centerHorizontal="true" 
    layout_alignParentBottom="true"/> 

</LinearLayout> 

我得到:

enter image description here

回答

4

您應該將按鈕放在列表之前,然後使用list元素的layout_above屬性將其放在按鈕上方。同時將layout_alignParentBottom="true"添加到您的按鈕。

像這樣:

<?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="fill_parent"> 

<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"> 
    <TextView 
    android:id="@+id/tvwPlayer1Name" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
    <TextView 
    android:id="@+id/tvwPlayer2Name" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
    <TextView  
    android:id="@+id/tvwPlayer3Name" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"/> 
    <TextView  
    android:id="@+id/tvwPlayer4Name" android:layout_weight="1" android:gravity="right" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:layout_margin="2dp"/> 
</LinearLayout> 

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

    android:layout_alignParentBottom="true" 

    /> 

<ListView 
    android:id="@+id/lvwScores" 
    android:layout_below="@id/lloPlayerNames" 

    android:layout_above="@id/btnOK" 

    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" /> 

+0

現在列表完全消失。我得到的只是標題和按鈕。明天再見,因爲這是很快的安息日,我必須去準備。 :) – theblitz 2011-04-15 15:04:31

+0

只是試過這個,現在它的工作。堰。將它傳送到我的手機並看到。 – theblitz 2011-04-16 21:20:51

1

嘗試在主xml中將android:below="@id/lvwScores"添加到Button,這會將Button置於ListView以下。

有關RelativeLayout的更多信息,請參見this tutorial

9

下面是我的一對夫婦我的應用程序有一個ListView或滾動型的,我也是在底部有按鈕的固定按鈕或LinearLayout中做。 「魔術」是在ListView中設置android:layout_weight="1"

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <ListView 
     android:id="@+id/android:list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:fastScrollEnabled="true" /> 
    <TextView 
     android:id="@+id/android:empty" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="No Quotes!" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="My Button" /> 
</LinearLayout>