0

Android で Linear Layout と weight が重複している可能性があります

やあ、

奇妙な問題があります。3 つのボタンを備えた線形レイアウトのカスタム ウィジェットを設計しました。コードは次のようになります。

<?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="wrap_content"
    android:orientation="horizontal"
    android:weightSum="3" >

    <ToggleButton
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/tbBrowse"
        android:background="@drawable/btn_tg_browse"
        android:textOn=""
        android:textOff=""
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:checked="false"
        android:gravity="bottom"/>

    <ToggleButton
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/tbHotSpot"
        android:background="@drawable/btn_tg_hotspot"
        android:textOn=""
        android:textOff=""
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:checked="true"
        android:gravity="bottom"/>

    <ToggleButton
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/tbMatches"
        android:background="@drawable/btn_tg_matches"
        android:textOn=""
        android:textOff=""
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:checked="false"
        android:gravity="bottom"/>

</LinearLayout>

ルック アンド フィールは次のようになります。

ここに画像の説明を入力

このウィジェットをクラスに追加しました (android:id="@+id/Footer"):

<?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"
    android:background="@color/White">

    <view
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        class="com.belldigital.widget.HeaderBar"
        android:id="@+id/Header"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" />

    <view
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        class="com.belldigital.widget.FooterBar"
        android:id="@+id/Footer"
        android:layout_alignParentBottom="true" />

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/Header"
        android:layout_above="@id/Footer"/>


</RelativeLayout>

「ビュー」宣言で重力が定義されていないため、最初の画像と同じルック アンド フィールが表示されると予想されますが、エミュレータと実際のデバイスの両方で次の画像が表示されます。

ここに画像の説明を入力

あなたが思うこと?Relative レイアウトに基づいてウィジェットを再設計しても問題ないかもしれません。ただし、現在のデザインは問題ないと思いますが、「ビュー」ウィジェットが私の配置を乱すのはなぜですか? コメント/提案をいただければ幸いです。

4

1 に答える 1

0

上記の「ビュー」を次のように変更すると、魔法のように問題が解決しました:)

<view
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        class="com.belldigital.widget.FooterBar"
        android:id="@+id/Footer"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"/>
于 2013-04-08T06:37:30.907 に答える