我的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_VERTICAL
或CENTER 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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)