【发布时间】:2017-03-14 18:10:42
【问题描述】:
我有这样的布局(我已经删除了一些属性,因为它们真的无关紧要,完整的演示项目是here):
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content" (* this is important)
android:layout_height="wrap_content"
android:breakStrategy="balanced" (* this is important)
android:text="@string/long_text" />
</LinearLayout>
long_text 的文字很长,所以要分开几行。
两个重要的行是android:layout_width="wrap_content" 和android:breakStrategy="balanced"。
我希望TextView 会根据实际的文本宽度计算宽度,但事实并非如此。
有人知道如何解决这个问题吗?
更新
属性android:breakStrategy="balanced" 仅适用于API 23 及更高版本。在我的示例中,文本占用 3 行,balanced 策略使每行的宽度大致相同。
我希望在这种情况下,视图本身的宽度将与最长的线相同。
我正在寻找任何解决方法。我需要像环聊聊天这样的解决方案。我不知道它是如何工作的。
更新 2
很遗憾,接受的答案不适用于 RTL 文本。
【问题讨论】:
-
你的意思是什么'我希望 TextView 会根据实际的文本宽度计算宽度,但事实并非如此' 而且你的实际似乎与应该是 like this
-
我已经更新了问题。
-
@Oleksii Kropachov 您希望如何断行,可以说它比 1.5 行更长.. 那么您的预期输出是什么?