android - 如何防止约束视图中的 textView 离开屏幕
问题描述
我在约束布局中有一个文本视图,将其约束保存在模拟器中。但是当我在物理手机上运行应用程序时,文本视图会消失在屏幕上
这是完整的xml
<?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:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/Text_Margin_Standard"
android:layout_marginTop="@dimen/Text_Margin_Standard"
android:gravity="start"
android:text="Title"
android:textAlignment="textStart"
android:textSize="@dimen/title_large"
app:layout_constraintStart_toEndOf="@+id/imageDeal"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/imageDeal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/Text_Margin_Standard"
android:layout_marginTop="@dimen/Text_Margin_Standard"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_launcher"
android:layout_marginLeft="@dimen/Text_Margin_Standard"/>
<TextView
android:id="@+id/tvDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/Text_Margin_Standard"
android:layout_marginTop="@dimen/Text_Margin_Standard"
android:text="TextView"
app:layout_constraintStart_toEndOf="@+id/imageDeal"
app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
<TextView
android:id="@+id/tvPrice"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/Text_Margin_Standard"
android:layout_marginEnd="@dimen/Text_Margin_Standard"
android:layout_marginBottom="8dp"
android:gravity="end"
android:text="TextView"
android:textColor="@color/colorAccent"
android:textSize="@dimen/text_price"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
带有 id tvprice的 Textview 是从物理设备运行时的屏幕内容
解决方案
尝试使用相对布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:padding="8dp">
<ImageView
android:id="@+id/imgRow"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentStart="true"
android:src="@drawable/your_image"
android:tint="@color/text_gray" />
<TextView
android:id="@+id/txtTitleRow"
style="@style/TextAppearance.AppCompat.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:text="name"
android:textStyle="bold"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/imgRow"
android:layout_toLeftOf="@+id/imgArrow"/>
<TextView
android:id="@+id/txtSubtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:text="subtitle"
android:layout_below="@+id/txtTitleRow"
android:layout_toRightOf="@+id/imgRow"
android:layout_toLeftOf="@+id/imgArrow"/>
<TextView
android:id="@+id/imgArrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="4dp"
android:tint="@color/text_black"
android:layout_alignParentEnd="true"/>
</RelativeLayout>
推荐阅读
- javascript - Javascript倒计时在不同设备上不同步
- java - 在 Intellij 中使用 Selenium 时未使用的导入语句
- c# - JWT 不记名令牌不适用于 ASP.Net Core 3.1 + Identity Server 4
- jenkins - Jenkins 共享库包含 java jar 文件
- ios - 尝试使用 Naxam.Mapbox.iOS 显示带有 Mapbox 图标但没有地图的空白页面
- reactjs - antd表的数据块分组
- javascript - 从数组创建无序列表的 DOM 函数
- python-3.x - 如何使用 protobuf 文本作为参数在 python 上发送 http post 请求?
- neo4j - Cypher - 具有可选匹配的聚合
- windows - 怎么解压gz文件?