Android 布局 - 如果内容宽度太宽,“wrap_content”不允许显示右侧的元素

Posted

技术标签:

【中文标题】Android 布局 - 如果内容宽度太宽,“wrap_content”不允许显示右侧的元素【英文标题】:Android Layouts -"wrap_content" is not allowing elements to the right to be displayed if the content width is too wide 【发布时间】:2019-05-06 08:48:38 【问题描述】:

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

[一些文字] [图片]

[一些较长的文本] [Img]

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

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

【问题讨论】:

文本太长无法显示img,因为行长有限。 感谢您的回复,但您能解释一下您的意思吗?行长当然受父元素宽度的限制,但即使我尝试将元素限制在指南的最大宽度,它仍然会溢出它。 【参考方案1】:

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

<TextView
    android:layout_
    android:layout_
    android:gravity="center"
    android:drawableRight="@drawable/android"
    android:text="short text"/>

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

【讨论】:

这正是我所需要的。感谢您提供详细信息和示例

以上是关于Android 布局 - 如果内容宽度太宽,“wrap_content”不允许显示右侧的元素的主要内容,如果未能解决你的问题,请参考以下文章

弹性布局续

如何使 CSS 表格适合屏幕宽度?

bootstrap table 表格太宽,设置的width属性不起作用怎么办

bootstrap table 表格太宽,设置的width属性不起作用怎么办

UICollectionView 太宽。我怎样才能使它成为设备的宽度?

pycharm 序列号/行号 的宽度太宽了如何调整