android - ScrollView 未将所有组件显示到手机屏幕
问题描述
我在 android 中遇到了 ScrollView 的问题。我真的不知道如何解决这个奇怪的问题。ScrollView 无法将所有组件显示到屏幕上,按钮隐藏在手机屏幕下方。
<LinearLayout
android:id="@+id/deviceTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageButton
android:id="@+id/backButton"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_margin="15dp"
android:background="@android:color/transparent"
android:padding="20dp"
android:src="@drawable/ic_baseline_arrow_back_24" />
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_margin="15dp"
android:gravity="center"
android:text="Account Settings"
android:textColor="@android:color/black"
android:textSize="16sp" />
</LinearLayout>
<View
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#D3D3D3"
app:layout_constraintTop_toBottomOf="@+id/deviceTitle" />
<ScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:paddingBottom="10dp">
<androidx.cardview.widget.CardView
android:id="@+id/deviceList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="5dp"
app:cardCornerRadius="5dp"
app:cardUseCompatPadding="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/personal_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Personal Details"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="USERNAME"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/personal_details" />
<TextView
android:id="@+id/edit_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_username"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_username"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditUsernameText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="text" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="EMAIL ADDRESS"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout_username" />
<TextView
android:id="@+id/edit_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_email"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_email"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/email">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditEmailText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="text" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="PASSWORD"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout_email" />
<TextView
android:id="@+id/edit_pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_pw"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_pw"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pw">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditPasswordText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="text"
android:text="********" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="PHONE NO."
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout_pw" />
<TextView
android:id="@+id/edit_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_phone"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_phone"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:endIconMode="clear_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/phone">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditPhoneText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="text" />
</com.google.android.material.textfield.TextInputLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</androidx.cardview.widget.CardView>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/SaveChangesButton"
android:layout_width="200dp"
android:layout_height="50dp"
android:layout_marginTop="100dp"
android:background="@drawable/button"
android:text="Save changes"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/deviceList" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
有什么解决办法吗?提前致谢!
编辑:
感谢所有投入宝贵时间来解决我的问题的开发人员。我已经通过将代码更改为:
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/view">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="20dp">
<androidx.cardview.widget.CardView
android:id="@+id/detailsList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="5dp"
app:cardCornerRadius="5dp"
android:padding="20dp"
app:cardUseCompatPadding="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">
<TextView
android:id="@+id/personal_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Personal Details"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="USERNAME"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/personal_details" />
<TextView
android:id="@+id/edit_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_username"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_username"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/username">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditUsernameText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="text" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="EMAIL ADDRESS"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout_username" />
<TextView
android:id="@+id/edit_email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_email"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_email"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/email">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditEmailText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="PASSWORD"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout_email" />
<TextView
android:id="@+id/edit_pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_pw"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_pw"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pw">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditPasswordText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="textPassword"
android:text="********" />
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="PHONE NO."
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout_pw" />
<TextView
android:id="@+id/edit_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:text="Edit"
android:textColor="#F49B95"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout_phone"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout_phone"
style="@style/TextInputLayoutOutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:boxStrokeColor="@color/mainColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/phone">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/EditPhoneText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="phone|number"
android:maxLength="14" />
</com.google.android.material.textfield.TextInputLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/SaveChangesButton"
android:layout_width="200dp"
style="?android:attr/borderlessButtonStyle"
android:layout_height="wrap_content"
android:layout_below="@id/detailsList"
android:background="@drawable/button"
android:text="Save changes"
android:layout_centerInParent="true"
android:foregroundGravity="center"
android:textAllCaps="false"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginTop="30dp"/>
</RelativeLayout>
</ScrollView>
但是,我仍然不知道为什么这段代码有效。如果有人能解释原因,将不胜感激。
解决方案
尝试改变
Layout_height : wrap_content
至
Layout_height: match_parent
在滚动视图标签中
推荐阅读
- reactjs - Material UI 中的可变图像网格显示
- node.js - 在 Express.js 项目中使用 Webpack 捆绑安装了 npm 的 Bootstrap
- html - 在已发布的 Azure 应用服务中找不到视图/控制器
- http - Grails HTTPResponse 失败的依赖异常
- javascript - 如何将来自 console.log 的打印消息直接添加到 javascript 的返回函数字符串中?
- symfony - 如何在easyadmin中为删除操作添加item_permission?
- javascript - 一些变量被多次加载
- javascript - 将数组元素的值与前一个元素相加
- php - php可以调用静态别名吗?
- php - 如何在没有 fosUser 的情况下在 fosCommentBundle 中添加输入用户名?