0

ビューを中央に配置する必要があり、その幅はmatch parentまたはではなくwrap content、アプリが実行されている画面の特定の割合のサイズです。より柔軟なレイアウトにするために、寸法を使用してサイズを設定しませんでしたが、要素の重みを定義して、メインの要素の必要なサイズにしました。そうするために、2 つの追加LinearLayoutsの定義済みの重みを挿入しました。Viewsこれが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:background="@drawable/right_back"
                  android:orientation="horizontal"
                  android:gravity="center">

<!-- The first one I think which is redundant -->
        <LinearLayout
            android:layout_weight="25"
            android:layout_width="0dip"
            android:layout_height="wrap_content"/>

<!-- Main view I need to be of a required size on each screen size -->
        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:background="@drawable/layout_round_corners"
            android:orientation="vertical"
            android:layout_weight="50"
            android:padding="20dip">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/welcome_text"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@color/text_color"
                android:layout_gravity="center_horizontal"/>

            <EditText
                android:id="@+id/edt_firsttimeactivity_first_field"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:hint="@string/password"
                android:password="true"
                android:singleLine="true"/>

            <EditText
                android:id="@+id/edt_firsttimeactivity_second_field"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/repeat_new_password_again"
                android:password="true"
                android:singleLine="true"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:onClick="onButtonClick"
                android:text="@string/create_account_for_me"/>
        </LinearLayout>

<!-- The second one I think which is redundant -->
        <LinearLayout
            android:layout_weight="25"
            android:layout_width="0dip"
            android:layout_height="wrap_content"></LinearLayout>


    </LinearLayout>
4

2 に答える 2

0

問題は、を定義していないことだと思いますweightSumandroid:weightSum="100"たとえば、最も外側のLinearLayoutに追加し、その合計を必要に応じて内側のレイアウトに分割する必要があります。

編集:問題を正しく理解していれば、「メインビュー」android:paddingLeftを使用するだけで問題を解決できるはずです。試してandroid:paddingRightみることもできます。もちろん、この場合のように高さを残します。お役に立てば幸いです。android:layout_marginLeftandroid:layout_marginRightfill_parent

于 2012-08-08T07:37:23.453 に答える
0

レイアウトの書き方は次のとおりです。

<?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="horizontal"
              android:background="@drawable/right_back"
              android:weightSum="1"
              android:gravity="center">

<!-- Main view I need to be of a required size on each screen size -->
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@drawable/layout_round_corners"
        android:layout_weight=".5"
        android:padding="20dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/welcome_text"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/text_color"
            android:layout_gravity="center_horizontal"/>

        <EditText
            android:id="@+id/edt_firsttimeactivity_first_field"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"                
            android:hint="@string/password"
            android:password="true"
            android:singleLine="true"/>

        <EditText
            android:id="@+id/edt_firsttimeactivity_second_field"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/repeat_new_password_again"
            android:password="true"
            android:singleLine="true"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:onClick="onButtonClick"
            android:text="@string/create_account_for_me"/>
    </LinearLayout>
</LinearLayout>

これを試して。2 番目の LinearLayout の layout_weight を変更して、好きなように大きくまたは小さく見せることができます。

于 2012-08-08T07:47:57.743 に答える