android - 滚动视图不起作用...滚动视图仅在屏幕的一半中起作用
问题描述
scrollview只覆盖了一半屏幕,属性减半
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fancy="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@drawable/gradient">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_centerHorizontal="true">
<ImageView
android:id="@+id/imageView"
android:layout_width="120dp"
android:layout_height="150dp"
android:layout_marginTop="80dp"
app:srcCompat="@drawable/burn" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:paddingTop="270dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="52dp"
android:layout_height="match_parent"
android:src="@drawable/ic_user" />
<EditText
android:id="@+id/email"
android:layout_width="224dp"
android:layout_height="match_parent"
android:ems="10"
android:hint="Name"
android:inputType="textPersonName" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp">
<ImageView
android:layout_width="52dp"
android:layout_height="match_parent"
android:src="@drawable/ic_password" />
<EditText
android:id="@+id/password"
android:layout_width="224dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Password"
android:inputType="textPassword" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:orientation="horizontal"
android:paddingTop="200dp"
android:layout_centerInParent="true">
<mehdi.sakout.fancybuttons.FancyButton
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
fancy:fb_borderColor="#FFFFFF"
fancy:fb_borderWidth="1dp"
fancy:fb_defaultColor="#7ab800"
fancy:fb_focusColor="#9bd823"
fancy:fb_iconPosition="left"
fancy:fb_radius="30dp"
fancy:fb_text="LOGIN / REGISTER"
fancy:fb_textColor="#FFFFFF" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
解决方案
您可以在滚动视图中放置一个约束布局,而不是使用多个线性布局,因为这样更容易创建布局。或者优化布局以使用一种线性布局。
**编辑
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fancy="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@drawable/gradient">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="vertical"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="120dp"
android:layout_height="150dp"
android:layout_marginTop="80dp"
android:layout_marginBottom="40dp"
app:srcCompat="@drawable/burn" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="52dp"
android:layout_height="match_parent"
android:src="@drawable/ic_user" />
<EditText
android:id="@+id/email"
android:layout_width="224dp"
android:layout_height="match_parent"
android:ems="10"
android:hint="Name"
android:inputType="textPersonName" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp">
<ImageView
android:layout_width="52dp"
android:layout_height="match_parent"
android:src="@drawable/ic_password" />
<EditText
android:id="@+id/password"
android:layout_width="224dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Password"
android:inputType="textPassword" />
</LinearLayout>
<mehdi.sakout.fancybuttons.FancyButton
android:id="@+id/login"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="20dp"
android:paddingTop="10dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:layout_marginTop="20dp"
fancy:fb_borderColor="#FFFFFF"
fancy:fb_borderWidth="1dp"
fancy:fb_defaultColor="#7ab800"
fancy:fb_focusColor="#9bd823"
fancy:fb_iconPosition="left"
fancy:fb_radius="30dp"
fancy:fb_text="LOGIN / REGISTER"
fancy:fb_textColor="#FFFFFF" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
结果
我可以告诉你使用额外的线性布局来居中项目。为了将来参考,android:gravity处理布局内部的项目,而android:layout_gravity是布局本身的对齐方式。
推荐阅读
- reactjs - 我的酶快照测试结果为空
- java - 从自定义插件添加依赖项
- html - 在 Bootstrap 4 的小屏幕上将水平图像行变成垂直堆叠的线
- react-native - 检索firestore中的子字段以显示在平面列表中 - 反应原生
- node.js - /lib64/libstdc++.so.6:找不到版本“CXXABI_1.3.9”(/node_modules/snappy/build/Release/binding.node 需要)
- spring-boot - 如何仅从 @OneToOne 关系上的子实体中检索特定字段,而不是所有字段?
- python - 向 Durable Function Orchestrator 发送外部事件会导致 Orchestrator 死机
- python - How to span the range in random function Python?
- postgresql - 有没有办法为 2 个表创建唯一约束?
- intellij-idea - IntelliJ 中的方法概述