1

子として LinearLayout (ビデオ ボタン コンテナー) とイメージ ボタンがあります。そのビデオ ボタンを右揃えにしたいので、 を付けましたlayout_gravity="right"

<LinearLayout 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:orientation="vertical"
    tools:context=".MainActivity" >

    <!-- VIDEO BUTTON CONTAINER -->
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="#000000"
        android:layout_gravity="top">

        <!-- VIDEO BUTTON -->
        <ImageButton
            android:id="@+id/button_video"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:background="?android:attr/selectableItemBackground"
            android:contentDescription="@string/desc"
            android:paddingBottom="@dimen/controls_button_padding"
            android:paddingTop="@dimen/controls_button_padding"
            android:src="@drawable/ic_action_video" />
    </LinearLayout>

    <!-- some FrameLayout and another LinearLayout -->
</LinearLayout>

それはこれを生成します:

ここに画像の説明を入力

私が欲しいのはこれです:

ここに画像の説明を入力

そして、ビデオボタンコンテナを に変更することでそれを取得しandroid:orientation="horizontal"ますandroid:orientation="vertical"。どうしたの?コンテナーの水平方向で機能しないのはなぜですか?

4

2 に答える 2

8

コンテナーが水平の場合、要素を左から右に順番に積み重ねる必要があります。では、本来の前提を保ちながら、水平方向のレイアウトグラビティをどのように満たすことができるでしょうか。

水平方向の重力 (右、左、中央) は垂直 LinearLayout で機能し、垂直方向の重力 (上、下) は水平 LinearLayout で機能します。

于 2013-08-02T22:54:45.600 に答える
2

置くだけ

重力=「右」

水平線形レイアウトにすると、うまくいくはずです:)

私の場合はうまくいきます(あなたのレイアウトに基づく例です):

<LinearLayout 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:orientation="vertical"
              tools:context=".MainActivity" >

    <!-- VIDEO BUTTON CONTAINER -->
    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="#000000"
            android:gravity="right">

        <!-- VIDEO BUTTON -->
        <ImageButton
                android:id="@+id/button_video"
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_margin="10dp"
                android:background="@android:color/background_light"/>
    </LinearLayout>

    <!-- some FrameLayout and another LinearLayout -->
</LinearLayout>

- 編集 -

LinearLayout の向きについて: vertical and horizo​​ntal では、レイアウト内の子を横に並べるか縦に並べるかを定義できます。

重力プロパティを使用すると、レイアウトの右側にあるレイアウトのアンカーを制御できます。

于 2013-08-02T22:53:05.830 に答える