我需要将我的视图放置在中心,它的宽度不是应用程序正在运行的屏幕的特定百分比,match parent
或者是特定百分比的大小。wrap content
为了获得更灵活的布局,我没有使用尺寸设置其大小,而是为元素定义了权重,以使其具有所需的主要大小。为了做到这一点,我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>