首页 > 解决方案 > Android 布局 - 如果内容宽度太宽,“wrap_content”不允许显示右侧的元素

问题描述

我正在处理的这件作品的设计要求是在一行上显示一些文本,然后是图像。图像应始终与文本对齐,如下所示:

[部分文字] [图片]

[一些更长的文字] [Img]

为此,我在文本宽度上使用了“wrap_content”修饰符。然而,问题是当文本足够长以占据屏幕宽度时,图像不会显示。我正在寻找一些东西来帮助我限制宽度的长度(不能动态完成,因为这需要快速加载),以便始终为行尾的图像保留足够的空间。

到目前为止,我能够做到这一点的唯一方法是使用固定宽度的 TextView 最终将图像对齐到每一行的同一位置,这是不希望的。使用“wrap_content”以外的任何东西要么需要我在运行时动态设置宽度,要么错误地创建比应有的更宽或更窄的 TextView,并且“wrap_content”似乎是造成它的原因,因此图像不显示. 我已经尝试过RelativeLayout、ConstraintLayout 和LinearLayout 来实现这一点,而且似乎都有同样的问题。

标签: androidandroid-layoutandroid-wrap-content

解决方案


用于android:drawableRight显示您的图像,而不是使用单独的ImageView.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:drawableRight="@drawable/android"
    android:text="short text"/>

在此处输入图像描述

在此处输入图像描述

您可以使用android:gravity来控制文本/图像的垂直位置以及android:drawablePadding控制图像和文本之间的空间。


推荐阅读