如果TextView的layout_width="wrap_content"
必须换行到第二行才能包含文本,则它将调整宽度以用完所有可用空间(考虑到边距等)。但是为什么在视图的末尾有填充?我只是告诉它 * wrap_content *,所以它应该 Package 那个内容!这看起来像个bug,这在股票Messenger应用程序的聊天界面中可见。2(图片来自我自己的应用程序。3但在9补丁中绝对没有额外的空间。4)
有什么解决办法吗?
更新:回应者/评论者没有抓住要点。也许我上传的图片是误导性的,因为它是从我的应用程序样式。问题发生在任何TextView,你可以看到,通过样式的背景,视图边界将不再紧张。我上传了一个不同的图像。以下是图像中的TextView的XML:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:background="#dddddd"
android:text="This doesn't wrap"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_gravity="center_horizontal"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginStart="20dp"
android:layout_gravity="center_horizontal"
android:background="#dddddd"
android:text="This wraps and look, the bounds does not fit tight against the right edge of text"
/>
4条答案
按热度按时间uinbv5nw1#
我发现选择的答案很有帮助,尽管它没有考虑到填充。我将选择的答案与this post's answer结合起来,得出了一个可以使用填充的视图。仅供参考,另一篇文章的答案有一个缺陷,即视图有时会在末尾被几个像素截断。
polhcujo2#
一开始,看到你的帖子,我以为问题是因为标准的Android
TextView
在他们的基本样式中定义了一些默认的填充。如果你想删除它,你可以尝试这样做:或
由于您的帖子已经更新,我知道您的问题不是来自填充,而是来自换行。确实,当有几行要显示时,Android
TextView
会在宽度上使用整个可用空间。正如in this post所述,没有标准的解决方案,您需要自定义您的文本视图,以固定其宽度后,填补它。
如下所示覆盖
textView
的onMeasure
方法应该可以工作(灵感来自“sky”答案):cbjzeqam3#
最近,我在为一个应用程序开发聊天气泡视图时遇到了类似的问题,所以我使用了公认解决方案中的想法和@hoffware的改进,并在Kotlin中重新实现了它们。
vsmadaxz4#
这肯定是因为“against”不适合放在单词“fit”和右边缘之间。如果您想测试一下,请尝试将文本更改为一堆|每个字符之间有一个空格。