1

私はこのようなXMLレイアウトファイルを持っています

<?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" >
    <RelativeLayout
        android:id="@+id/toppane"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentTop="true" >
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/bottompane"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
        <Button
            android:id="@+id/genericbutton"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true" />
        <Button
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_above="@id/genericbutton" />
        <Button
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_toRightOf="@id/genericbutton"
            android:layout_alignTop="@id/genericbutton" />
    </RelativeLayout>   
</RelativeLayout>

ボトムペインのコンテンツを幅と高さの両方で折り返す必要があります。

ボトムペインの Wrap_content は幅 (合計 100 dp) で機能しますが、wrap_content は高さでは機能しないようです。toppane が表示されないように、bottompane は親の高さを取得します。

なぜこうなった?私は何が欠けているか、間違っていますか?

編集:写真はすぐに来ます。私が達成したいのは、コンテンツを単にラップする高さを持つボトムパネルです。そのため、上下にある 2 つのボタン (100 dp) よりも高くなく、トップパネルがボトムペインの上の残りのスペースを埋めて、親と上に整列します。

EDIT2:画像 http://img405.imageshack.us/img405/9871/wrapcontent.png 高さは wrap_content に設定されていますが、青い線はレイアウトです。赤い線は本来あるべきものです (コンテンツをラップするだけです)。緑色の線はトッパンのレイアウト方法です (ボトムペインの上部に貼り付けます)。

4

3 に答える 3

0

RelativeLayoutにalignParenBottomとwrap_contentを持つ子を含めることはできません。説明はこちら

考えられる解決策の1つは、LinearLayoutsをネストすることです。

<RelativeLayout
    android:id="@+id/toppane"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/bottompane"
    android:layout_alignParentTop="true" >
</RelativeLayout>

<LinearLayout
    android:id="@+id/bottompane"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:layout_width="50dp"
            android:layout_height="50dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:layout_width="50dp"
            android:layout_height="50dp" />

        <Button
            android:layout_width="50dp"
            android:layout_height="50dp" />
    </LinearLayout>
</LinearLayout>

于 2012-09-05T11:45:23.327 に答える
0

あなたの buttons位置と関係をこれに置き換えるだけです

<Button
            android:id="@+id/firstButton"
            android:layout_width="50dp"
            android:layout_height="50dp"/>

        <Button
            android:id="@+id/genericbutton"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@+id/firstButton" />

        <Button
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@+id/firstButton"
            android:layout_toRightOf="@id/genericbutton" />
于 2012-09-05T11:49:43.290 に答える
0

親の相対レイアウトを垂直線形レイアウトに置き換えてみてください。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <RelativeLayout
        android:id="@+id/toppane"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentTop="true" >
    </RelativeLayout>
    <RelativeLayout
        android:id="@+id/bottompane"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
        <Button
            android:id="@+id/genericbutton"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true" />
        <Button
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_above="@id/genericbutton" />
        <Button
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_toRightOf="@id/genericbutton"
            android:layout_alignTop="@id/genericbutton" />
    </RelativeLayout>   
</LinearLayout>
于 2012-09-05T12:06:47.860 に答える