ビューを中央に配置する必要があり、その幅は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>