0

所以我已经完成了我的 Android 应用程序的早期版本,并开始在各种设备上进行测试。我发现嵌套的线性布局不足以满足我的目的,因此我试图将嵌套的线性布局转换为相对布局。以下是我的出发点:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".LoginActivity">
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/backgroundhomescreen"
    android:scaleType="fitXY" />
<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="35dp">
    <LinearLayout
        android:orientation="vertical"
        android:padding="10dp">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal"
            android:paddingBottom="3dp"
            android:layout_marginBottom="10dp">
            <EditText
                android:id="@+id/login_txt_Username"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@layout/textboxlogin"
                android:hint="Username or Email"
                android:inputType="textEmailAddress"
                android:scrollbars="none"
                android:textColor="#fff"
                android:textColorHint="#ddd" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal"
            android:paddingBottom="3dp"
            android:paddingTop="3dp"
            android:layout_marginBottom="10dp">
            <EditText
                android:id="@+id/login_txt_Password"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@layout/textboxlogin"
                android:hint="Password"
                android:inputType="textPassword"
                android:maxLines="1"
                android:textColorHint="#ddd" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal"
            android:paddingBottom="3dp"
            android:paddingTop="3dp">
            <Button
                android:id="@+id/login_btn_submit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="SIGN IN"
                android:textColor="#fff"
                android:textSize="25dp"
                android:textStyle="bold"
                android:typeface="normal"
                android:background="@layout/buttonsigninbackground" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal"
            android:paddingBottom="10dp"
            android:paddingTop="3dp">
            <TextView
                android:id="@+id/login_txt_or"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="- or -"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="25dp"
                android:textStyle="bold" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="horizontal"
            android:paddingBottom="15dp"
            android:paddingTop="3dp">
            <Button
                android:id="@+id/login_btn_navCreateAccount"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@layout/buttoncreateaccountbackground"
                android:text="CREATE AN ACCOUNT"
                android:textColor="#fff"
                android:textSize="25dp"
                android:textStyle="bold"
                android:typeface="normal" />
        </LinearLayout>
    </LinearLayout>
</TableLayout>
</RelativeLayout>

这是我到目前为止所取得的成果,但有一些问题——即使在遵循本教程之后——RelativeLayout的视觉指南

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:context=".LoginActivity">
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/backgroundhomescreen"
    android:scaleType="fitXY" />
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText
        android:id="@+id/login_txt_Username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@layout/textboxlogin"
        android:hint="Username"
        android:layout_centerHorizontal="true"
        android:inputType="textEmailAddress"
        android:maxLines="1"
        android:scrollbars="none"
        android:textColor="#fff"
        android:textColorHint="#ddd" />
    <EditText
        android:id="@+id/login_txt_Password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@layout/textboxlogin"
        android:hint="Password"
        android:layout_centerHorizontal="true"
        android:inputType="textPassword"
        android:maxLines="1"
        android:scrollbars="none"
        android:textColor="#fff"
        android:textColorHint="#ddd"
        android:layout_below="@id/login_txt_Username"
    />
    <Button
        android:id="@+id/login_btn_submit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text="SIGN IN"
        android:layout_centerHorizontal="true"
        android:textColor="#fff"
        android:textSize="25dp"
        android:textStyle="bold"
        android:typeface="normal"
        android:background="@layout/buttonsigninbackground" />
    <TextView
        android:id="@+id/login_txt_or"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="- or -"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/login_btn_navCreateAccount"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="25dp"
        android:textStyle="bold" />
    <Button
        android:id="@id/login_btn_navCreateAccount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@layout/buttoncreateaccountbackground"
        android:text="CREATE AN ACCOUNT"
        android:textColor="#fff"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="25dp"
        android:textSize="25dp"
        android:textStyle="bold"
        android:typeface="normal" />
</RelativeLayout>
</RelativeLayout>

最终我需要一个底部对齐的相对布局,这样我就可以将其他视图放在前一个视图的上方。在我上面的第二个代码示例中,引用 login_btn_navCreateAccount 的 textview 'login_txt_or' 似乎被忽略了。

任何线索为什么会这样?如果有任何用处,我在 Xamarin Studio 中使用 Xamarin.Android 4.10.1。

4

1 回答 1

0

这就是我最终得到的

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_login_relativeLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:src="@drawable/backgroundgameplaying"
    android:scaleType="fitXY" />
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="bottom"
    android:layout_marginBottom="45dp">
    <TextView
        android:id="@+id/login_tv_error"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="15dp"
        android:textColor="#f00" />
    <EditText
        android:id="@+id/login_txt_Username"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="25dp"
        android:background="@layout/textboxlogin"
        android:hint="Username"
        android:layout_centerHorizontal="true"
        android:inputType="textEmailAddress"
        android:maxLines="1"
        android:scrollbars="none"
        android:textColor="#fff"
        android:textColorHint="#ddd"
        android:layout_below="@id/login_tv_error" />
    <EditText
        android:id="@+id/login_txt_Password"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="25dp"
        android:background="@layout/textboxlogin"
        android:hint="Password"
        android:layout_centerHorizontal="true"
        android:inputType="textPassword"
        android:maxLines="1"
        android:scrollbars="none"
        android:textColor="#fff"
        android:textColorHint="#ddd"
        android:layout_below="@id/login_txt_Username" />
    <Button
        android:id="@+id/login_btn_submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/login_txt_Password"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="25dp"
        android:textColor="#fff"
        android:textSize="25dp"
        android:textStyle="bold"
        android:typeface="normal"
        android:background="@layout/buttonsigninbackground"
        android:text="SIGN IN" />
    <TextView
        android:id="@+id/loginTxtOr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/login_btn_submit"
        android:layout_centerHorizontal="true"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_marginBottom="25dp"
        android:textSize="25dp"
        android:textStyle="bold|italic"
        android:text="- or -" />
    <Button
        android:id="@+id/login_btn_navCreateAccount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_alignParentRight="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="25dp"
        android:layout_below="@id/loginTxtOr"
        android:background="@layout/buttoncreateaccountbackground"
        android:textColor="#fff"
        android:textSize="25dp"
        android:textStyle="bold"
        android:typeface="normal"
        android:text="CREATE AN ACCOUNT" />
</RelativeLayout>
</RelativeLayout>
于 2013-11-19T22:38:06.860 回答