0

以下に示すレイアウトに と が含まれているのはなぜEditTextですかButton? MapViewが全体を占めています。

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

<LinearLayout
    a:layout_width="fill_parent"
    a:layout_height="wrap_content"
    a:orientation="vertical" >

    <LinearLayout
        a:layout_width="fill_parent"
        a:layout_height="wrap_content"
        a:orientation="vertical" >

        <RelativeLayout
            a:layout_width="fill_parent"
            a:layout_height="40dip"
            a:background="#50ffffff"
            a:orientation="horizontal"
            a:paddingBottom="0dip"
            a:paddingLeft="5dip"
            a:paddingRight="5dip"
            a:paddingTop="5dip" >

            <Button
                a:id="@+id/smsCancelButton"
                a:layout_width="70dip"
                a:layout_height="40dip"
                a:layout_alignParentRight="true"
                a:layout_weight="1.0"
                a:enabled="false"
                a:text="@string/sms_cancel_abbr" />
        </RelativeLayout>

        <com.google.android.maps.MapView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/mapview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:apiKey="not shown"
            android:clickable="true" />
    </LinearLayout>

    <SeekBar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="26dp"
        a:paddingLeft="10dip"
        a:paddingRight="10dip"
        a:paddingTop="30dip"
        android:max="100" >
    </SeekBar>
</LinearLayout>
<!-- #dcdcdc -->

<LinearLayout
    a:layout_width="fill_parent"
    a:layout_height="wrap_content"
    a:layout_alignParentBottom="true"
    a:background="#dcdcdc"
    a:orientation="horizontal"
    a:paddingBottom="5dip"
    a:paddingLeft="5dip"
    a:paddingRight="5dip"
    a:paddingTop="5dip" >

    <EditText
        a:id="@+id/smsBody"
        a:layout_width="0dip"
        a:layout_height="wrap_content"
        a:layout_weight="1.0"
        a:autoText="true"
        a:capitalize="sentences"
        a:hint="@string/sms_enter_message"
        a:imeOptions="actionSend|flagNoEnterAction"
        a:inputType="textShortMessage|textAutoCorrect|textCapSentences|textMultiLine"
        a:maxLines="10"
        a:nextFocusRight="@+id/send_button" />

    <LinearLayout
        a:layout_width="wrap_content"
        a:layout_height="wrap_content"
        a:orientation="vertical" >

        <Button
            a:id="@+id/smsSendButton"
            a:layout_width="wrap_content"
            a:layout_height="wrap_content"
            a:layout_marginLeft="5dip"
            a:layout_weight="1.0"
            a:enabled="false"
            a:nextFocusLeft="@+id/smsBody"
            a:text="@string/sms_send_abbr" />
    </LinearLayout>
</LinearLayout>

4

1 に答える 1

1

あなたの最上位LinearLayoutは明示的に向きを設定していません。 方向を指定しない場合、LinearLayoutデフォルトで方向になります。horizontalしたがって、幅が に設定されているマップを含む最初のペインはfill_parent画面全体を埋め、 と を含む 2 番目のペインはEditText画面Buttonの右側から切り取られます。

LinearLayoutto内に子を設定するmatch_parentと、残りのすべてのスペースが消費され、後続の子が表示されなくなることに注意する必要があります。たとえば、縦型 LL と 4 つの子 ( ab、 、c) があるとしdます。高さ onaは に設定されてwrap_contentおり、おそらく 10 または 20 dp の高さしかありません。 bの高さは に設定されてfill_parentおりcd両方とも高さが に設定されていwrap_contentます。この例でbは、 は a によって占められていない画面全体を埋め、決して表示さcdません。LinearLayoutこれは、ウェイトを使用して部分的に回避できるが、完全には回避できないという苛立たしい制限です。

于 2012-07-21T00:09:11.070 に答える