作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当然这是一个常见的用例,但我似乎无法用 LinearLayout(或 RelativeLayout)解决它,但也许我遗漏了一些东西。
最好用图片解释:
我有一个基本的 TextView 聊天气泡,另一个 TextView 右对齐(消息的时间戳)。
两者都是wrap_content
(但时间戳可以精确设置为40dp,但似乎并不重要)。
现在在第一条(顶部)消息中它很短,因此您可以看到右侧的 View 。
但在第二个字符串很长,所以 wrap_content
占据了手机的整个宽度,将时间戳 textview 推出屏幕(水平线性布局,但相对 toRightOf
做同样的事情)
那么我如何放置一个与另一个 View 右对齐的时间戳,但时间戳的大小将得到保证(不是换行/挤压 - 而是消息气泡字符串换行)
(我意识到我可以使用 RTL 布局,但我有来自双方的消息,所以在其他情况下我需要 LTR + min sdk api 17 对于布局 hack 来说太高了)。
最佳答案
如果您使用具有水平方向
的LinearLayout
小部件,并且其子项之一想要占用所有可用的水平空间,那么您应该使用布局权重。
对于第一个 TextView
集:
layout_width="0dp"
layout_weight="1"
对于第二个 TextView
:
layout_width="wrap_content"
在这种情况下,您说第二个 TextView
将占用所需的水平空间,而第一个 TextView
将占用其余部分。 “0dp”只是为了防止额外的布局测量调用而进行的优化。
关于android - 如何在不挤压的情况下将 View 与另一个 View 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40389460/
我是一名优秀的程序员,十分优秀!