我在标题中有一个下拉菜单。按下按钮时,下拉菜单会关闭。问题是活动中的所有其他视图都使用android:layout_below="@id/header"
定位,并且下拉菜单将所有内容都按下,因为它会增加标题的高度。我需要从android:layout_height="wrap_content"
中排除下拉菜单以防止这种情况发生。有可能吗?
注意:我可以通过编程方式解决问题,我只想了解是否可以从XML中的“warp_content”中排除项目。
答案 0 :(得分:1)
从RelativeLayout
开始,而不是添加RelativeLayout
中的所有项目,最后,将您的头文件放在xml的底部(在某种意义上,它位于底部)显示所有其他元素)。例如。像这样的东西:
<!-- Root element -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- First text view, the margin_top defines space for your header -->
<TextView android:id="@+id/tv1" android:layout_margin_top="height_of_your_header"/>
<!-- TextView below another view -->
<TextView android:id="@+id/tv2" android:layout_below="@+id/tv1" />
<!-- Your Header file, which will be positioned over all elements
- When closed, it will fit above @id/tv1
- When opened, it will float above the other elements -->
<include
layout="@layout/header"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
答案 1 :(得分:1)
除非设置android:visibility=gone
,否则不能排除在布局计算期间考虑ViewGroup的子项。但您可能希望用RelativeLayout
替换主容器,然后根据需要放置一些元素