android - ScrollView 带走了 LinearLayout 约束
问题描述
我正在尝试在登录屏幕上通过 LinearLayout 实现 ScrollView,但滚动视图似乎弄乱了 LinearLayout 上的所有约束。
什么应该看起来像这样
添加 ScrollView 时看起来像这样
<?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
解决方案
我必须将 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>
推荐阅读
- javascript - 排毒测试:跟踪导致测试框架永远等待的 Javascript 计时器
- docker - 无法在 Windows 10 上为 Docker Linux 容器共享 C 盘
- reactjs - 禁用提交按钮 redux 表单
- java - 如何将.class文件更改为文本文件
- regex - 正则表达式仅匹配字符串中的数字
- html - 我的图像没有占据页面的整个宽度
- qt - 极端缩放时巨大的图像撕裂/消失
- android - getitemcount() 在 recyclerview 中使用电影 api 返回 null
- stata - 什么时候在 Stata 中为有效的范围内整数 i 和 j 调用 el(s,i,j) 是非法的?
- angular - 使用 rxjs Angular 和 ngrx 同步处理 Observable 以防止过多的 HTTP 请求超时