首页 > 解决方案 > 如何使 TextView 具有 maxLines 并且如果它不适合水平扩展?

问题描述

我不想使用 scrollView。我想要的行为是这样的:

短文:

在此处输入图像描述

长文:

在此处输入图像描述

标签: android-layoutandroid-constraintlayoutandroid-textview-autosize

解决方案


您是否尝试过 XML 中的 minLines?

像这样的东西:

<TextView
        android:id="@+id/tv_previous_story"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:minLines="2" //(could be any minimum amount of lines)
        android:textColor="@color/text_color"
        android:textSize="@dimen/privacy_text_size" />

如果您总是有至少两个单词(或您在 XML 中设置的最少行数),这对您来说应该可以正常工作...

如果这不是您搜索的内容,也许您可​​以通过编程方式处理它并根据字数设置 TextView 的宽度和高度......不是确切的方法,但例如:

void updateWidthAndHeightOfTextView(TextView tv, String t) {
   tv.setWidth(t.length * [bla bla bla]);
   tv.setHeight(tv.getWidth() / [bla bla bla]); //(if you want to change the height too, in this case according to the width)
}

你用你的方式写它,你知道你的需求......

而且,还有这个答案,我实际上并不熟悉,但也可能会满足您的需求......

更新

如果我在编写上述内容时不明白并且您希望TextView具有 maxLines 并且只有动态宽度,您可以tv.setWidth(t.length * [bla bla bla]);在我上面编写的 semi 方法中使用,在 .XML 中使用 maxLines ...

另外,下次请提出更具体的问题,这样人们就不必费力去理解如何给你想要的相关答案。

我希望它对你有帮助!


推荐阅读