ScrollView消除了LinearLayout约束

时间:2018-07-17 18:48:36

标签: android xml scrollview android-linearlayout android-scrollview

我正在尝试在LinearLayout的登录屏幕上实现ScrollView,但是滚动视图似乎弄乱了LinearLayout上的所有约束。

应该是什么样子

enter image description here

添加ScrollView时看起来像这样

enter image description here

<?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:id="@+id/relative_root_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bitmap_resource"
tools:context="dreamentries.dreamentries.LoginActivity">

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/linear_center_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginBottom="5dp"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:orientation="vertical"
        android:padding="5dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="text"
            android:textSize="30dp"
            android:visibility="invisible" />

        <EditText
            android:id="@+id/login_edittxt_email"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_marginBottom="5dp"
            android:layout_marginEnd="25dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginStart="25dp"
            android:alpha="0.95"
            android:background="#202020"
            android:hint="EMAIL"
            android:inputType="textEmailAddress"
            android:letterSpacing="0.095"
            android:padding="5dp"
            android:paddingEnd="15dp"
            android:paddingLeft="15dp"
            android:paddingStart="15dp"
            android:textColor="#fff"
            android:textColorHint="#fff"
            android:textSize="15dp" />

        <EditText
            android:id="@+id/login_edittxt_pass"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_marginEnd="25dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginStart="25dp"
            android:layout_marginTop="5dp"
            android:alpha="0.95"
            android:background="#202020"
            android:hint="PASSWORD"
            android:inputType="textPassword"
            android:letterSpacing="0.095"
            android:padding="5dp"
            android:paddingEnd="15dp"
            android:paddingLeft="15dp"
            android:paddingStart="15dp"
            android:textColor="#fff"
            android:textColorHint="#fff"
            android:textSize="15dp" />

    </LinearLayout>
</ScrollView>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linear_center_login"
    android:layout_marginEnd="15dp"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:layout_marginStart="15dp"
    android:layout_marginTop="2dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="text"
        android:textSize="40dp"
        android:visibility="invisible" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="25dp"
        android:layout_marginLeft="25dp"
        android:layout_marginRight="25dp"
        android:layout_marginStart="25dp"
        android:orientation="horizontal">


        <TextView
            android:id="@+id/btn_login_earlyadopter"
            android:layout_width="0dp"
            android:layout_height="45dp"
            android:layout_gravity="center"
            android:layout_marginEnd="4dp"
            android:layout_marginRight="4dp"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#C0202020"
            android:gravity="center"
            android:letterSpacing="0.095"
            android:text="REGISTER"
            android:textColor="#fff"
            android:textSize="17dp" />

        <TextView
            android:id="@+id/btn_login_login"
            android:layout_width="0dp"
            android:layout_height="45dp"
            android:layout_gravity="center"
            android:layout_marginLeft="4dp"
            android:layout_marginStart="4dp"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#C0202020"
            android:gravity="center"
            android:letterSpacing="0.095"
            android:text="LOGIN"
            android:textColor="#fff"
            android:textSize="17dp" />

    </LinearLayout>

</LinearLayout>

</RelativeLayout>

我在ScrollView属性中缺少什么防止它弄乱LinearLayout

1 个答案:

答案 0 :(得分:1)

我必须将linearLayouts包装在RelativeLayout中,然后将Scrollview设置为:

android:fillViewport="true"
android:layout_width="match_parent"
android:layout_height="match_parent"

以下将达到您想要的效果:

<?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:id="@+id/relative_root_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bitmap_resource"
tools:context="dreamentries.dreamentries.LoginActivity">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <LinearLayout
        android:id="@+id/linear_center_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginBottom="5dp"
        android:layout_marginEnd="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginStart="10dp"
        android:orientation="vertical"
        android:padding="5dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="text"
            android:textSize="30dp"
            android:visibility="invisible" />

        <EditText
            android:id="@+id/login_edittxt_email"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_marginBottom="5dp"
            android:layout_marginEnd="25dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginStart="25dp"
            android:alpha="0.95"
            android:background="#202020"
            android:hint="EMAIL"
            android:inputType="textEmailAddress"
            android:letterSpacing="0.095"
            android:padding="5dp"
            android:paddingEnd="15dp"
            android:paddingLeft="15dp"
            android:paddingStart="15dp"
            android:textColor="#fff"
            android:textColorHint="#fff"
            android:textSize="15dp" />

        <EditText
            android:id="@+id/login_edittxt_pass"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_marginEnd="25dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginStart="25dp"
            android:layout_marginTop="5dp"
            android:alpha="0.95"
            android:background="#202020"
            android:hint="PASSWORD"
            android:inputType="textPassword"
            android:letterSpacing="0.095"
            android:padding="5dp"
            android:paddingEnd="15dp"
            android:paddingLeft="15dp"
            android:paddingStart="15dp"
            android:textColor="#fff"
            android:textColorHint="#fff"
            android:textSize="15dp" />

    </LinearLayout>


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/linear_center_login"
    android:layout_marginEnd="15dp"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:layout_marginStart="15dp"
    android:layout_marginTop="2dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="text"
        android:textSize="40dp"
        android:visibility="invisible" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="25dp"
        android:layout_marginLeft="25dp"
        android:layout_marginRight="25dp"
        android:layout_marginStart="25dp"
        android:orientation="horizontal">


        <TextView
            android:id="@+id/btn_login_earlyadopter"
            android:layout_width="0dp"
            android:layout_height="45dp"
            android:layout_gravity="center"
            android:layout_marginEnd="4dp"
            android:layout_marginRight="4dp"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#C0202020"
            android:gravity="center"
            android:letterSpacing="0.095"
            android:text="REGISTER"
            android:textColor="#fff"
            android:textSize="17dp" />

        <TextView
            android:id="@+id/btn_login_login"
            android:layout_width="0dp"
            android:layout_height="45dp"
            android:layout_gravity="center"
            android:layout_marginLeft="4dp"
            android:layout_marginStart="4dp"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#C0202020"
            android:gravity="center"
            android:letterSpacing="0.095"
            android:text="LOGIN"
            android:textColor="#fff"
            android:textSize="17dp" />

    </LinearLayout>

</LinearLayout>

</RelativeLayout>

</ScrollView>