android– 在RelativeLayout中设置minHeight,禁用alignBaseline?

android– 在RelativeLayout中设置minHeight,禁用alignBaseline?,第1张

概述我的RelativeLayout看起来应该更像这样:+----------------------------------------------+|||||+----------------++----------------+||||+------

我的relativeLayout看起来应该更像这样:

+----------------------------------------------+|                                              ||                                              ||+----------------+          +----------------+|||                |+--------+|                ||||     VIEw 1     || VIEw 2 ||     VIEw 3     |||+----------------++--------++----------------+||                                              ||                                              |+----------------------------------------------+

当我的相对布局具有固定高度(例如80dp)时,我完美地实现了它.不幸的是我需要它有androID:layout_height =“wrap_content”与androID:minHeight设置(例如到那些80dp).当我以这种方式更改我的布局时,androID:layout_alignBaseline似乎不适用于VIEw2,我得到类似的东西:

+----------------------------------------------+|                                              ||                  +--------+                  ||+----------------+| VIEw 2 |+----------------+|||                |+--------+|                ||||     VIEw 1     |          |     VIEw 3     |||+----------------+          +----------------+||                                              ||                                              |+----------------------------------------------+

我的xml看起来像这样:

<relativeLayout    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:minHeight="80dp" >    <TextVIEw        androID:ID="@+ID/VIEw1"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_alignParentleft="true"        androID:layout_centerVertical="true"        androID:layout_toleftOf="@+ID/VIEw2"        androID:gravity="center"        androID:text="VIEw1" />    <TextVIEw        androID:ID="@+ID/VIEw2"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_alignBaseline="@+ID/VIEw1"        androID:layout_centerHorizontal="true"        androID:gravity="center"        androID:text="VIEw2" />    <TextVIEw        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:layout_alignParentRight="true"        androID:layout_centerVertical="true"        androID:layout_toRightOf="@+ID/VIEw2"        androID:gravity="center"        androID:text="VIEw3" /></relativeLayout>

任何人都知道为什么它不起作用?

解决方法:

经过几次测试后,我得出的结论是,在relativeLayout中设置height到wrap_content只会被窃听.它不能与不填充布局整个高度的视图正确配合.对于这种视图,relativeLayout存在垂直居中的问题(规则CENTER_VERTICALCENTER IN PARENT).基本上,应该垂直居中的视图将像它们一样显示,但布局本身将“看到”它们(为了设置其他规则)作为对齐顶部.

因此,将任何规则设置为依赖于那些“错误地通过布局感知”视图的位置,将导致以非预期方式显示的视图.

如果考虑到这一点,我的案例很容易解释.这是视图的显示方式:

+----------------------------------------------+|                                              ||                  +--------+                  ||+----------------+| VIEw 2 |+----------------+|||                |+--------+|                ||||     VIEw 1     |          |     VIEw 3     |||+----------------+          +----------------+||                                              ||                                              |+----------------------------------------------+

这就是relativeLayout“感知”它们的方式:

+----------------------------------------------+|+----------------+          +----------------+|||                |+--------+|                ||||     VIEw 1     || VIEw 2 ||     VIEw 3     |||+----------------++--------++----------------+||                                              ||                                              ||                                              ||                                              |+----------------------------------------------+

(两个图片中的视图2位置相同).

由于我需要将我的布局设置为relativeLayout,为了解决这个问题,我决定完全放弃使用wrap_content值,并自己控制视图的高度.它使我的布局复杂一点,但只要我控制它,它就好了.

总结

以上是内存溢出为你收集整理的android – 在RelativeLayout中设置minHeight,禁用alignBaseline?全部内容,希望文章能够帮你解决android – 在RelativeLayout中设置minHeight,禁用alignBaseline?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1118004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存