1. 程式人生 > >listview與其他控制元件的佈局問題

listview與其他控制元件的佈局問題

(一)在LinearLayout中定義一個listview和button:
若button在上,listview在下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom
="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.listviewtest.MainActivity" >
<Button android:id
="@+id/button" android:layout_width="match_parent" android:layout_height="50dp" android:text="new" />
<ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@android:color/darker_gray"
android:scrollbars="none" >
</ListView> </LinearLayout>

效果為下:
這裡寫圖片描述

如果是listview在上,button在下(有可能遇到異常,先clear project再次執行):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.listviewtest.MainActivity" >
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="@android:color/darker_gray"
        android:scrollbars="none" >
    </ListView>
     <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="new"
        />
</LinearLayout>

效果如下:
這裡寫圖片描述

結果可以看到,button並沒有顯示出來,解決方法是用RelativeLayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.listviewtest.MainActivity" >
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="@android:color/darker_gray"
        android:scrollbars="none" >
    </ListView>
     <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="new"
       android:layout_alignParentBottom="true" />
</RelativeLayout>

結果為:
這裡寫圖片描述

注意加上layout_alignParentBotton = “true”
button正常顯示了,不過button是懸在最下面的位置上的
而button在listview上面也可以用RelativeLayout來實現,這裡就不展示了

最後,如果遇到執行時異常,可以嘗試clear project後再次執行。