4

画面の中央に配置したいコントロールがあるので、次のコードを使用しました

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_vertical|center_horizontal"
    android:background="#DDDDDD">
    <TextView
        android:id="@+id/tv_un"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10pt"
        android:textColor="#444444"

        android:layout_marginRight="9dip"
        android:layout_marginTop="20dip"
        android:layout_marginLeft="10dip"

        android:text="User Name:"/>
    <EditText
        android:id="@+id/et_un"
        android:layout_width="150dip"
        android:layout_height="wrap_content"
        android:background="@android:drawable/editbox_background"
        android:layout_toRightOf="@id/tv_un"

        android:layout_alignTop="@id/tv_un"/>
     <TextView
        android:id="@+id/tv_pw"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10pt"
        android:textColor="#444444"

        android:layout_below="@id/tv_un"
        android:layout_marginRight="9dip"
        android:layout_marginTop="15dip"
        android:layout_marginLeft="10dip"

        android:text="Password:"/>
    <EditText
        android:id="@+id/et_pw"
        android:layout_width="150dip"
        android:layout_height="wrap_content"
        android:background="@android:drawable/editbox_background"
        android:layout_toRightOf="@id/tv_pw"
        android:layout_alignTop="@id/tv_pw"
        android:layout_below="@id/et_un"
        android:layout_marginLeft="17dip"

        android:password="true"        />
    <Button
        android:id="@+id/btn_login"
        android:layout_width="100dip"
        android:layout_height="wrap_content"
        android:layout_below="@id/et_pw"

        android:layout_marginTop="15dip"
        android:layout_marginLeft="110dip"

        android:text="Login" />
     <TextView
        android:id="@+id/tv_error"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:textSize="7pt"

        android:layout_below="@id/btn_login"
        android:layout_marginRight="9dip"
        android:layout_marginTop="15dip"
        android:layout_marginLeft="15dip"
        android:textColor="#AA0000"

        android:text=""/>
</RelativeLayout>

しかし、出力は次の画像のようになりました

ここに画像の説明を入力してください

画面の向きに関係なく、それらを中央に配置する方法

よろしくお願いします

4

5 に答える 5

7

これandroid:layout_centerInParent = "true"で問題を解決できます。この属性は、画面の中央に表示する任意の要素に適用できます。

于 2012-05-22T07:01:15.963 に答える
4

コードを編集しました

ここにあります

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:background="#DDDDDD"
android:gravity="center_vertical|center_horizontal" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/tv_un"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="User Name:"
            android:textColor="#444444"
            android:textSize="10pt" />

        <EditText
            android:id="@+id/et_un"
            android:layout_width="150dip"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/tv_un"
            android:layout_toRightOf="@id/tv_un"
            android:background="@android:drawable/editbox_background" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/tv_pw"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/tv_un"
            android:text="Password:"
            android:textColor="#444444"
            android:textSize="10pt" />

        <EditText
            android:id="@+id/et_pw"
            android:layout_width="150dip"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/tv_pw"
            android:layout_below="@id/et_un"
            android:layout_marginLeft="17dip"
            android:layout_toRightOf="@id/tv_pw"
            android:background="@android:drawable/editbox_background"
            android:password="true" />
    </LinearLayout>

    <Button
        android:id="@+id/btn_login"
        android:layout_width="100dip"
        android:layout_height="wrap_content"
        android:layout_below="@id/et_pw"
        android:layout_marginLeft="110dip"
        android:layout_marginTop="15dip"
        android:text="Login" />

    <TextView
        android:id="@+id/tv_error"
        android:layout_width="fill_parent"
        android:layout_height="40dip"
        android:layout_below="@id/btn_login"
        android:layout_marginLeft="15dip"
        android:layout_marginRight="9dip"
        android:layout_marginTop="15dip"
        android:text=""
        android:textColor="#AA0000"
        android:textSize="7pt" />
</LinearLayout>

于 2012-05-22T07:32:20.490 に答える
2

パラメータを設定しRelativeLayoutます:android:layout_height="wrap_content" およびandroid:layout_width="wrap_content"

残りのすべての XML は問題ないようです。

于 2012-05-22T07:22:48.153 に答える
1

レイアウトとlayout-landフォルダーのxmlファイルの両方でandroid:layout_centerHorizo​​ntal="true"を使用します。それが役に立てば幸い。

追伸レイアウトをすべての画面サイズに合わせる場合は、xmlファイルに何もハードコーディングしないでください

于 2012-05-22T06:59:44.500 に答える
1

ここは必要ありませんRelativeLayoutLinearLayouts次のように2 つを使用することもできます。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#DDDDDD"
    android:gravity="center" >
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
        <!-- here your textViews -->
        </LinearLayout>
   </LinearLayout>
</LinearLayout>

重要なのはandroid:layout_gravity="center"、ネストされたLinearLayoutです。

于 2017-09-13T08:37:47.117 に答える