如何从Android视图中的“wrap_content”中排除项目?

时间:2013-04-05 06:14:11

标签: android android-layout android-view

我在标题中有一个下拉菜单。按下按钮时,下拉菜单会关闭。问题是活动中的所有其他视图都使用android:layout_below="@id/header"定位,并且下拉菜单将所有内容都按下,因为它会增加标题的高度。我需要从android:layout_height="wrap_content"中排除下拉菜单以防止这种情况发生。有可能吗?

注意:我可以通过编程方式解决问题,我只想了解是否可以从XML中的“warp_content”中排除项目。

2 个答案:

答案 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替换主容器,然后根据需要放置一些元素