我的应用程序上有登录屏幕的基本布局。我想在屏幕顶部对齐徽标。电子邮件&密码字段,&屏幕中间的登录按钮。比两个按钮创建帐户&忘记了屏幕底部的密码(堆叠在一起)。 我无法弄清楚我的生活怎么做。我试图使用“aligninParent”属性,它确实有效,但当我改变手机方向时,它会导致字段重叠。我是否需要为景观创建不同的布局?
我的代码:
<?xml version="1.0" encoding="utf-8"?><!-- Login Form -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:background="@drawable/radialback">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dp">
<!-- Logo -->
<ImageView
android:id="@+id/imgLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_marginBottom="25dp"
android:contentDescription="@string/se_logo"
android:scaleType="fitCenter"
android:src="@drawable/se_logo" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center_vertical">
<!-- Email Address -->
<EditText
android:id="@+id/login_email"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:layout_marginBottom="15dp"
android:hint="@string/email"
android:textColorHint="@color/blue"
android:singleLine="true"
android:background="@drawable/blue_edit_text">
<requestFocus />
</EditText>
<!-- Password -->
<EditText
android:id="@+id/login_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:layout_marginBottom="10dp"
android:hint="@string/pw"
android:textColorHint="@color/blue"
android:password="true"
android:singleLine="true"
android:background="@drawable/blue_edit_text" />
<!-- Login Button -->
<Button
android:id="@+id/btnLogin"
android:layout_width="210dp"
android:layout_height="35dp"
android:layout_marginTop="15dp"
android:background="@drawable/btn_style"
android:layout_gravity="center"
android:text="@string/login"
android:textColor="#ffffff" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="bottom">
<!-- Link to Register -->
<Button
android:id="@+id/btnlink_to_register"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dip"
android:layout_marginBottom="5dp"
android:text="@string/create_account"
android:textColor="@color/text_color"
android:background="@null"
android:textSize="15sp" />
<!-- Forgot Password Button -->
<Button
android:id="@+id/btnlink_forgot_password"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/forgot_password"
android:textColor="@color/text_color"
android:background="@null"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</ScrollView>
答案 0 :(得分:0)
不要使用fill_parent,替换match_parent(不推荐使用前者)。
简短回答:是的,如果你想让它看起来不同,你需要不同的横向布局。
您似乎使用了太多布局。
徽标不应位于线性布局内,您可以对该图像视图使用AlignParentTop = true。
下一个LinearLayout(对于电子邮件/用户等)应该是“alignBelow =
如果您使用相对布局,则为您的视图/小部件添加ID,因为这就是您将它们放置在屏幕中的方式。
仅使用LinearLayouts将单个视图组放在一个可以作为整体适应的块中。
阅读一些关于布局权重的信息,让您的一个视图相应地使用剩余的“未使用”空间。
并发布您想要的截图:)
答案 1 :(得分:0)
试试这个..
<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:background="#FFFFFF"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/login_iv"
android:layout_width="400dp"
android:layout_height="125dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="150dp"
android:src="@drawable/yourlogo" />
<RelativeLayout
android:id="@+id/rl_login"
android:layout_width="fill_parent"
android:layout_below="@+id/login_iv"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<EditText
android:id="@+id/etName"
android:layout_width="350dp"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginTop="50dp"
android:hint="email" />
<EditText
android:id="@+id/etPass"
android:layout_width="350dp"
android:layout_height="wrap_content"
android:layout_below="@+id/etName"
android:layout_marginTop="15dp"
android:password="true"
android:hint="password"
android:singleLine="true"
android:focusableInTouchMode="true"/>
<Button
android:id="@+id/bLogin"
android:layout_width="350dp"
android:layout_height="45dp"
android:layout_below="@+id/etPass"
android:layout_marginTop="20dp"
android:gravity="center"
android:onClick="login"
android:text="LOGIN"
android:textColor="#FFFFFF"
android:textSize="15sp" />
</RelativeLayout>