-1

私はxmlをデザインしています

<?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="match_parent"
    android:orientation="vertical" >



    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.05"
        android:background="#000000"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btncancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center"
            android:background="#CCCCCC"
            android:text="Cancel" />

        <Button
            android:id="@+id/btnadd"
            android:layout_width="82dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:background="#3399FF"
            android:text="Add" />

    </LinearLayout>
</LinearLayout>

ボタン「追加」のAndroid:gravity = rightが機能していません。レイアウト:マージンを指定してから、右に移動するだけです。誰か助けてください。

4

7 に答える 7

3

あなたが何を望んでいるのかは少し不明確ですが、次のことに注意してください。

  • gravityウィジェットのコンテンツ、つまりボタン テキストに影響します。

  • layout_gravity親レイアウトでのウィジェットの配置に影響します

したがって、ボタンを右に配置したい場合は、 に変更gravitylayout_gravityます。

于 2013-09-18T10:39:10.220 に答える
2

RelativeLayoutの代わりに使用しLinearLayoutます。

android:layout_alignParentRight="true"btnaddに使用 します。

編集 :

コード :

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.05"
        android:background="#000000"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btncancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center"
            android:background="#CCCCCC"
            android:text="Cancel" />

        <Button
            android:id="@+id/btnadd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_gravity="right"
            android:background="#3399FF"
            android:text="Add" />
    </RelativeLayout>
于 2013-09-18T10:40:20.450 に答える
2

Change the LinearLayout to be as RelativeLayout

and instead of android:gravity="right" use android:layout_alignParentRight="true"

于 2013-09-18T10:40:43.780 に答える
0

android:orientation="horizontal"Linear Layoutで使用しているため、これを使用しましたandroid:orientation="vertical"

またはこれを使用して、コードを変更しました:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.05"
    android:background="#000000"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/btncancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="#CCCCCC"
        android:text="Cancel" />

    <Button
        android:id="@+id/btnadd"
        android:layout_width="82dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#3399FF"
        android:text="Add" />

</RelativeLayout>

于 2013-09-18T10:56:00.087 に答える
0

LinearLayout(向き横)を使っているからです相対レイアウトを使ってみてください

于 2013-09-18T10:37:29.800 に答える
0

このようなことを達成したい場合:

ここに画像の説明を入力

これは、RelativeLayout または LinearLayout を使用して行うことができます。

LinearLayout の場合、ボタン間にスペースを明示的に追加します。これは、android:layout_gravityLinearLayout が指定したスペース内にのみビューを配置するためです。そして、このスペースは LinearLayout 自体ではなく、(名前が示すように) 直線的に配置されたすべてのビューの合計です。

2つのボタンを配置する私の方法は次のとおりです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

    <Button
        android:id="@+id/btnadd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add" />

    <ImageView
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@android:color/transparent" />

    <Button
        android:id="@+id/btncancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel" />

</LinearLayout>

特に Android の 2.x バージョンでは、LinearLayout がより堅牢であると感じたので、私は常に RelativeLayout よりも LinearLayout を好みます。

android:layout_gravityところで:との違いandroid:gravity

  • layout_gravity、レイアウトが定義する境界内にビュー全体を配置するように、ビューの親レイアウトに指示します。LinearLayout の場合、これはビューを次々と直線的に配置することによって割り当てられたスペースです。
  • gravity、使用可能なスペース内に前景を配置するようにビューに指示します。お気づきかもしれませんがAdd-Button、右側にテキストが表示されています。
于 2013-09-18T11:28:37.943 に答える