android - Android WebView 与其他视图重叠
问题描述
我在图像和按钮之间有一个简单的网络视图。出于某种原因,如果我输入长文本,则 Web 视图与徽标和按钮重叠。它适用于短文本。我使用了约束布局。似乎网络视图正在扩展到父视图之外。
请看图片。
下面是我的布局代码:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout
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"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_logo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/card_big_margin"
android:src="@drawable/login_cashnetusa_color"
android:tint="@color/white"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<androidx.cardview.widget.CardView
android:id="@+id/cv_splash_screen"
style="@style/CardTheme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/card_normal_outer_margin"
android:layout_marginTop="@dimen/card_normal_outer_margin"
android:layout_marginRight="@dimen/card_normal_outer_margin"
android:layout_marginBottom="@dimen/card_normal_outer_margin"
app:layout_constraintBottom_toTopOf="@id/btn_cta"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_logo">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_header"
style="@style/CardContent.CustomBlack.Bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/card_normal_margin"
android:text="@string/dummy_full_name"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<WebView
android:id="@+id/wv_update_text"
style="@style/CardContent.White"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="@dimen/card_normal_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_header" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<Button
android:id="@+id/btn_cta"
style="@style/Button.OrangeGradient"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/card_normal_margin"
android:layout_marginRight="@dimen/card_normal_margin"
android:layout_marginBottom="@dimen/card_item_normal_margin"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@id/tv_skip"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
tools:text="@string/dummy_btn_ok" />
<TextView
android:id="@+id/tv_skip"
style="@style/CardContent.White"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/card_normal_margin"
android:text="@string/skip"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
解决方案
当您将 CardView 的高度设置为 wrapContent 时,它将扩展到放入其中的内容,您可以做的就是设置app:layout_constrainedHeight="true"
它以防止它超出其范围。
请注意,您必须正确设置视图绑定链接才能正常工作,即在“链”中从视图顶部到底部的所有视图上设置app:layout_constraintTop_toX
和设置。app:layout_constraintBottom_toX
所以在你的代码中:
<androidx.cardview.widget.CardView
android:id="@+id/cv_splash_screen"
style="@style/CardTheme"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/card_normal_outer_margin"
android:layout_marginTop="@dimen/card_normal_outer_margin"
android:layout_marginRight="@dimen/card_normal_outer_margin"
android:layout_marginBottom="@dimen/card_normal_outer_margin"
<!-- add this line --> app:layout_constrainedHeight="true"
app:layout_constraintBottom_toTopOf="@id/btn_cta"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_logo">
推荐阅读
- java - 获取图表中经过的最长路线
- python - 为什么这个记录器不创建哨兵事件?
- python - 使用 requires_sync=True 复制 blob 时出现 AzureMissingResourceHttpError,除非容器是公共的
- ios - 在 SwiftUI NavigationView 中呈现 UINavigationBar 的旧小标题
- visual-studio - IIS Express 配置中的 allowdoubleescaping = "true" 不起作用
- c - Mac OSX 应该有一个“malloc.h”文件吗?
- android - 获取全屏且不失真的 Imageview
- c++ - 如果容器不是调用函数中的引用,则使用 std::thread 传递对迭代器的引用失败
- string - 从 MATLAB 中的数值数组创建逗号分隔的数据对字符串
- r - R:将列表派生类显示为小标题中的向量