2010-10-19 63 views
0

我有一个导航栏包含在一个线性布局中,其布局如下。当导航栏位于顶部时,此相对布局形成整个屏幕。我在导航栏中添加了一个按钮,并在单击按钮时变为可见的列表视图。问题是:单击按钮时,我期望列表显示在屏幕下方的内容的顶部,而实际上是按下屏幕的内容并且不重叠。我已经尝试过所有示例中的相对布局和框架布局,但没有运气。请帮忙:。我有一个在android appication中重叠视图的问题

<LinearLayout android:orientation="vertical" 
android:layout_width="fill_parent" android:layout_height="fill_parent" 
android:layout_alignParentTop="true" android:background="@drawable/xxx"> 

<include android:id="@+id/navbarx" layout="@layout/navbar" /><<<-- has the button and the listview for it. 
<RelativeLayout android:layout_width="fill_parent" 
android:layout_weight="1" android:layout_marginTop="10dp" 
android:layout_height="0dp" android:layout_gravity="top|fill"> 

<ListView android:id="@android:id/list" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:background="#00ffffff" android:layout_marginLeft="14dp" 
android:layout_marginRight="5dp" android:layout_marginTop="10dp" 
android:layout_marginBottom="40dp" android:drawSelectorOnTop="true" 
android:divider="#00ffffff" android:listSelector="@drawable/yyy" 
android:scrollbarThumbVertical="@drawable/vertical_slider" 
android:headerDividersEnabled="false" android:layout_alignParentTop="true" android:layout_alignWithParentIfMissing="true"/> 

</RelativeLayout> 

</LinearLayout>" 

回答

0

在LinearLayout中,事物不会重叠。如果您希望包含的导航栏出现在相对布局的顶部,则需要将它们置于相对布局或框架布局中。例如:

<FrameLayout . . . > 
    <RelativeLayout . . ."> 
    <ListView android:id="@android:id/list" . . ./> 
    </RelativeLayout> 

    <include android:id="@+id/navbarx" layout="@layout/navbar" /> 
</FrameLayout> 

这将导致包含的布局在带有ListView的relativeLayout的顶部。

+0

感谢您的快速反应。我确实想过这个。但有一个担心:不会让这个navbar总是在relativelayout上重叠...我期望的是navbar中的列表应该是唯一一个与下面的相关布局重叠的列表,并且只有在按钮点击时。再次感谢您的建议 – kash 2010-10-19 20:53:38

+0

是的,那可能是真的。你有几个选择,你可以给listLabout给listview一些顶部填充,这样它可以被下压,或者你可以从你的包含的布局中的listiew中分离出导航栏,这样你就可以把导航栏本身放在frameLayout之外。 – 2010-10-19 21:05:15

+0

谢谢你会试用它们! – kash 2010-10-19 21:12:00