a有一个约束布局与一些图像和文本视图。我的文本视图有顶部,底部和开始约束在imageview。但问题是文本视图不显示所有的文本。
我无法更改组视图,需要继续使用约束布局。
design with the images and texviewstext is not full display in the emulator
这是我的XML
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".instructions.InstructionsFragment">
<ImageView
android:id="@+id/shoeListIcon"
android:layout_width="@dimen/dimen_instructions_image_size"
android:layout_height="@dimen/dimen_instructions_image_size"
android:layout_marginStart="16dp"
android:layout_marginTop="64dp"
android:src="@drawable/image_shoe_list"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
style="@style/TextsStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_8dp"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
android:text="In this App you can see your list of shoes with it type and image"
app:layout_constraintBottom_toBottomOf="@id/shoeListIcon"
app:layout_constraintStart_toEndOf="@id/shoeListIcon"
app:layout_constraintTop_toTopOf="@id/shoeListIcon" />
<ImageView
android:id="@+id/addNewShoeIcon"
android:layout_width="@dimen/dimen_instructions_image_size"
android:layout_height="@dimen/dimen_instructions_image_size"
android:layout_marginTop="@dimen/dimen_24dp"
android:src="@drawable/image_add"
app:layout_constraintStart_toStartOf="@+id/shoeListIcon"
app:layout_constraintTop_toBottomOf="@id/shoeListIcon" />
<TextView
style="@style/TextsStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_8dp"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
android:text="You can click on the add button to add a new pair of shoes."
app:layout_constraintBottom_toBottomOf="@id/addNewShoeIcon"
app:layout_constraintStart_toEndOf="@id/addNewShoeIcon"
app:layout_constraintTop_toTopOf="@id/addNewShoeIcon" />
<ImageView
android:id="@+id/shoeLDetailIcon"
android:layout_width="@dimen/dimen_instructions_image_size"
android:layout_height="@dimen/dimen_instructions_image_size"
android:layout_marginTop="@dimen/dimen_24dp"
android:src="@drawable/image_shoe"
app:layout_constraintStart_toStartOf="@+id/addNewShoeIcon"
app:layout_constraintTop_toBottomOf="@id/addNewShoeIcon" />
<TextView
android:id="@+id/teste"
style="@style/TextsStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_8dp"
app:layout_constrainedWidth="true"
app:layout_constraintHorizontal_bias="0"
android:text="You can click on an image to see the shoe's details as name, size, description, etc"
app:layout_constraintBottom_toBottomOf="@id/shoeLDetailIcon"
app:layout_constraintStart_toEndOf="@+id/shoeLDetailIcon"
app:layout_constraintTop_toTopOf="@id/shoeLDetailIcon" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
我尝试了另一个stackoverflow答案。我使用TexView属性作为MaxLines,SingleLine = false,constraintbies = 0。但没有解决我的问题。
2条答案
按热度按时间ezykj2lf1#
您可以在设计视图中看到发生的情况:
您的
TextView
超出了屏幕边缘,因为它们不受屏幕边缘的限制,并且它们的宽度设置为wrap_content
,即 “与它们包含的文本一样宽”。由于文本无法在屏幕上显示,TextView
的结尾最终会被推到视图之外。你需要反过来做--
TextView
需要被设置/约束到一个合适的大小,这样文本内容就适合 * 那个 *。这意味着要么设置一个固定的layout_width
,要么使用像layout_constraintEnd_toEndOf="parent"
这样的约束来锁定 end 边缘到屏幕的一边(使用layout_width="0dp"
来允许TextView
调整大小以适合那个约束)。这样,宽度就受到限制,如果文本太长,就需要排到下一行。您可以将
layout_height
保留为wrap_content
,以允许它随着换行的发生而增长-显然,如果换行太多,它就会变得太高,然后您就必须考虑maxLines
和ellipsize
属性之类的问题。添加一个maxHeight
,或者以其他方式限制高度。如果两个维度都受到限制,那么这就限制了你可以显示多少文本!也可以将
TextView
保留为wrap_content
宽度,并将其放置在ScrollView
中,ScrollView
在屏幕上 * 被 * 限制为一定大小-这将允许您拖动文本以查看更多内容(基本上是将视图从一边滑到另一边,这样你就可以通过ScrollView
创建的“窗口”看到它的不同部分)但这取决于你想要什么。从你的布局来看,我猜你只是想在每张图片旁边有一个固定的标签。
TextView
的结尾限制到parent
的结尾(您也需要在那里的某个地方添加一些填充/边距)TextView
的顶部和底部约束到ImageView
的顶部和底部(使其垂直居中)您还需要测试它在各种屏幕大小、各种系统字体大小下的外观(如果用户已经将他们的手机设置为使用大文本,任何使用 SP 尺寸的东西都会更大,占用更多的空间)。如果你的标签很长,而X1 M21 N1 X最终可能会比X1 M22 N1 X高,您可能必须开始使用
Barrier
s,以便根据哪个元素最大,将其约束到适当的元素。(如果可以的话,这是保持标签简洁的另一个很好的理由!)有很多方法可以定义这些关于如何使用空间的限制,你想怎么做就看你了。yqkkidmi2#
我在android studio中渲染了你的视图,你的视图正在离开屏幕,只需将这行添加到所有文本视图中,以防止它们超出父视图或屏幕