所以我已经完成了Android应用程序的早期版本,并开始在各种设备上进行测试。我发现我的嵌套LinearLayouts不足以满足我的目的,所以我试图将嵌套的LinearLayouts转换为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"
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>
这是我到目前为止所遇到的问题,但有一些问题 - 即使在完成本教程之后 - Visual Guide to 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。
答案 0 :(得分: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>