2

リストビューの下にlinearlayoutを配置したいのですが、リストビューの上に配置すると例外が発生し、アクティビティが突然停止し、リストビューの下に配置しても表示されません。何が間違っていますか?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >



    <ListView
        android:id="@+id/lvRestaurants"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

        <LinearLayout
        android:id="@+id/llButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/bDone"
            android:layout_width="153dp"
            android:layout_height="match_parent"
            android:text="Done" />

        <Button
            android:id="@+id/bCancel"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Cancel" />
    </LinearLayout>

</LinearLayout>
4

4 に答える 4

10

android:layout_weight=1ListViewに追加します。

他のレイアウトが表示されない理由は、リストビューが親レイアウトのすべての場所を占めているためです ( android:layout_height="fill_parent")

于 2013-01-22T09:37:38.137 に答える
4

代わりにRelativeLayoutを使用することをお勧めします。LinearLayoutと特にandroid:layout_weightを使用すると、パフォーマンスが高くなります。このレイアウトは、必要なものを実現します。重要なのはandroid:layout_alignParentBottomおよびandroid :layout_aboveプロパティです。やってみて。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/llButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/bDone"
            android:layout_width="153dp"
            android:layout_height="match_parent"
            android:text="Done" />

        <Button
            android:id="@+id/bCancel"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Cancel" />
    </LinearLayout>

    <ListView
        android:id="@+id/lvRestaurants"
        android:layout_above="@id/llButtons"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

</RelativeLayout>
于 2013-01-22T10:27:14.600 に答える
0

weightConceptを使ってみることができます。私はあなたのコードにいくつかの変更を加えました

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="10" >

    <ListView
        android:id="@+id/lvRestaurants"
        android:layout_weight="8"
        android:layout_width="fill_parent"
        android:layout_height="0dip" >
    </ListView>

    <LinearLayout
        android:layout_weight="2"
        android:id="@+id/llButtons"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/bDone"
            android:layout_width="153dp"
            android:layout_height="fill_parent"
            android:text="Done" />

        <Button
            android:id="@+id/bCancel"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:text="Cancel" />
    </LinearLayout>

</LinearLayout>

要件に応じて変更を加えます

于 2013-01-22T09:44:52.603 に答える