Scrollview不显示相对布局的所有元素

时间:2015-02-01 16:48:25

标签: android xml scrollview

嗨,大家好,我对android世界很新,我在Android应用程序中遇到了ScrollView的问题。当我将屏幕的方向从纵向更改为横向并且未显示“登录”按钮时,会出现此问题。这可能是由于在布局结束时显示了注册按钮。任何帮助将不胜感激。

login_layout.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:scrollbars="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:layout_weight="1">

<RelativeLayout
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="#ff2b8bff">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign in"
        android:id="@+id/signInButton"
        android:background="#fffffbfd"
        android:onClick="signIn"
        android:layout_below="@+id/usersPassword"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="52dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:id="@+id/usersEmail"
        android:layout_marginTop="31dp"
        android:layout_below="@+id/bourguestLogo"
        android:layout_centerHorizontal="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPassword"
        android:ems="10"
        android:id="@+id/usersPassword"
        android:layout_marginTop="35dp"
        android:layout_below="@+id/usersEmail"
        android:layout_alignStart="@+id/usersEmail" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign up"
        android:id="@+id/signUpButton"
        android:onClick="changeLayout"
        android:background="#ffff2f14"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/bourguestLogo"
        android:src="@drawable/waiter"
        android:layout_marginTop="88dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:1)

隐藏是因为 margin top &gt;屏幕高度

  • 您将徽标设置在视图顶部(以88dp作为边距顶部)
  • 徽标下面有UserEmail(31dp作为保证金顶部)
  • 在UserEmail下面的
  • 有UsersPassword(35 dp作为保证金顶部)
  • 在UserPassword下方,我们找到SingIn按钮(52 dp作为边距顶部)

=&GT; 88 + 31 + 35 + 52 dp>您的屏幕高度(在横向模式下),因此您的按钮将被 SingUpButton (设置在布局底部android:layout_alignParentBottom="true"

隐藏

作为解决方案,请尝试我的建议,否则你应该减少最高边距

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff2b8bff">

    <ScrollView
        android:scrollbars="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:layout_weight="1">

        <RelativeLayout
            android:orientation="vertical" android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#ff2b8bff">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Sign in"
                android:id="@+id/signInButton"
                android:background="#fffffbfd"
                android:onClick="signIn"
                android:layout_below="@+id/usersPassword"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="52dp" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:ems="10"
                android:id="@+id/usersEmail"
                android:layout_marginTop="31dp"
                android:layout_below="@+id/bourguestLogo"
                android:layout_centerHorizontal="true" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPassword"
                android:ems="10"
                android:id="@+id/usersPassword"
                android:layout_marginTop="35dp"
                android:layout_below="@+id/usersEmail"
                android:layout_alignStart="@+id/usersEmail" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/bourguestLogo"
                android:src="@drawable/waiter"
                android:layout_marginTop="88dp"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true" />

        </RelativeLayout>
    </ScrollView>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Sign up"
        android:id="@+id/signUpButton"
        android:onClick="changeLayout"
        android:background="#ffff2f14"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentEnd="true" />
</LinearLayout>