kotlin Android XML中的TextView未显示我的所有文本

tf7tbtn2  于 2022-12-30  发布在  Kotlin
关注(0)|答案(2)|浏览(268)

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。但没有解决我的问题。

ezykj2lf

ezykj2lf1#

您可以在设计视图中看到发生的情况:

您的TextView超出了屏幕边缘,因为它们不受屏幕边缘的限制,并且它们的宽度设置为wrap_content,即 “与它们包含的文本一样宽”。由于文本无法在屏幕上显示,TextView的结尾最终会被推到视图之外。
你需要反过来做--TextView需要被设置/约束到一个合适的大小,这样文本内容就适合 * 那个 *。这意味着要么设置一个固定的layout_width,要么使用像layout_constraintEnd_toEndOf="parent"这样的约束来锁定 end 边缘到屏幕的一边(使用layout_width="0dp"来允许TextView调整大小以适合那个约束)。
这样,宽度就受到限制,如果文本太长,就需要排到下一行。您可以将layout_height保留为wrap_content,以允许它随着换行的发生而增长-显然,如果换行太多,它就会变得太高,然后您就必须考虑maxLinesellipsize属性之类的问题。添加一个maxHeight,或者以其他方式限制高度。如果两个维度都受到限制,那么这就限制了你可以显示多少文本!
也可以将TextView保留为wrap_content宽度,并将其放置在ScrollView中,ScrollView在屏幕上 * 被 * 限制为一定大小-这将允许您拖动文本以查看更多内容(基本上是将视图从一边滑到另一边,这样你就可以通过ScrollView创建的“窗口”看到它的不同部分)但这取决于你想要什么。
从你的布局来看,我猜你只是想在每张图片旁边有一个固定的标签。

  • TextView的结尾限制到parent的结尾(您也需要在那里的某个地方添加一些填充/边距)
  • TextView的顶部和底部约束到ImageView的顶部和底部(使其垂直居中)
  • 也许重写你的标签,使他们不那么长(一些写作指南在这里)

您还需要测试它在各种屏幕大小、各种系统字体大小下的外观(如果用户已经将他们的手机设置为使用大文本,任何使用 SP 尺寸的东西都会更大,占用更多的空间)。如果你的标签很长,而X1 M21 N1 X最终可能会比X1 M22 N1 X高,您可能必须开始使用Barrier s,以便根据哪个元素最大,将其约束到适当的元素。(如果可以的话,这是保持标签简洁的另一个很好的理由!)有很多方法可以定义这些关于如何使用空间的限制,你想怎么做就看你了。

yqkkidmi

yqkkidmi2#

我在android studio中渲染了你的视图,你的视图正在离开屏幕,只需将这行添加到所有文本视图中,以防止它们超出父视图或屏幕

app:layout_constraintEnd_toEndOf="parent"

相关问题