我想把两个TextView放在一起,让它们根据各自的内容展开。
两个TextView的内容都是完全动态和不可预测的,因此我希望解决方案在下图所示的所有情况下都能一致地工作:
1.第一个TextView的内容非常长(而且可能还必须 Package 成多行),而另一个TextView的内容相对较短。
1.恰恰相反,即。第一个TextView的内容较短。
1.两个TextViews的内容都很长,必须换行。理想情况下,它们应该在中间相遇。
我尝试了LinearLayout
,ConstraintLayout
和RelativeLayout
的各种设置,但没有一个在所有情况下都能一致地工作。要创建上面屏幕截图中的布局,我必须根据文本长度手动自定义每个TextView的属性。然而,我假设我不能很容易地判断每个文本在运行时将占用多少空间(例如:它是否会被 Package 成多行等),因此,我担心我不能动态地微调TextView的属性取决于它们的内容。这就是为什么我试图找到一些设置,将工作一贯没有我的干预,虽然我知道这可能是不可能的。不管怎样,我希望我只是错过了一些明显的东西。
或者,我会考虑“测量”每个文本的预期宽度,以决定TextViews的设置并动态微调它们,但这只是最后的手段。
2条答案
按热度按时间whlutmcx1#
您可以尝试使用Flexbox实现上述结果
结果:
查看Flexbox提供的所有参数,以根据您的需求进行调整。例如
app:layout_minWidth
,其为子节点提供最小宽度。btqmn9zl2#
将两个文本视图都设置为
0dp
。如果您使用的是Constraint layout
,则将两个视图的边约束到它们自己和父视图。你应该得到你想要的结果。