0

私はこのレイアウトを持っています:最初はスピナー、その後はリストビュー、その後はEditTextとボタンを含むリニアレイアウト、そして画面の下部にはボタンがあります。

ここに私の最初のレイアウトファイルがあります:

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical">

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:textColor="#0e0e0e"
        android:layout_above="@+id/list_view"
        android:id="@+id/spinner"/>

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/list_view"
        android:layout_alignParentLeft="true"
        android:layout_above="@+id/linear_layout" />


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/linear_layout"
        android:layout_above="@+id/search_btn"
        android:weightSum="3"
        android:layout_alignParentLeft="true">

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/insert_chord_edit_text"
            android:layout_weight="2"
            android:text=""/>

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/add_chord_button"
            android:layout_weight="1"
            android:text="Add"/>

    </LinearLayout>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/search_btn"
        android:text="Search"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="32dp" />

</RelativeLayout>

が見えないことを除いて、すべて正常に動作しますSpinner。(そして私は実際のデバイスでテストしました)。その後、上のレイアウトを変更します。と言う代わりに:spinner is above listviewlistview is above of linearlayoutlistview is below of spinner私は :とに変更しますlistview is above of linearlayout。以下のレイアウトに変更しました。

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical">

    <Spinner
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:textColor="#0e0e0e"
        android:id="@+id/spinner"/>

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/list_view"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/spinner"       // ADD THIS LINE
        android:layout_above="@+id/linear_layout" />


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/linear_layout"
        android:layout_above="@+id/search_btn"
        android:weightSum="3"
        android:layout_alignParentLeft="true">

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/insert_chord_edit_text"
            android:layout_weight="2"
            android:text=""/>

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:id="@+id/add_chord_button"
            android:layout_weight="1"
            android:text="Add"/>

    </LinearLayout>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/search_btn"
        android:text="Search"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="32dp" />

</RelativeLayout>

そして、それは私が望むように機能しますが、その理由を説明することはできません. 教えてください。

ありがとう :)

4

3 に答える 3

1

最初のケースでは、リストビューは高さ塗りつぶしの親として言及され、layout_above 属性はありますが、layout_below 属性はありません。そのため、listview は linear_layout 要素の上のすべての高さを占めていました。スピナーの可視性はリストビューによって上書きされるため、スピナーが表示されないのはそのためです。

于 2013-11-11T07:25:27.317 に答える
0

スピナーに設定layout_weight="1"すると、問題が解決する場合があります。

于 2013-11-11T08:16:19.267 に答える