覆盖视图如何在Android中运行?

时间:2012-01-04 19:20:05

标签: android listview android-layout overlay uinavigationbar

在Android中,我注意到你可以在另一个上面找到一个固定的视图。例如,当您打开浏览器并点击搜索框时,会弹出一个键盘提示(在列表视图的顶部)。但是,请注意,您仍然可以在列表视图中向上和向下滚动,而键盘不会消失。像:

example showing keyboard overlaying the listview

有人请解释(最好还是一些示例代码)这是如何工作的?

我想要做的就是拥有一个自定义列表视图,它总是在列表视图的顶部和列表视图的底部都有一个浮动导航栏(它实际上不是列表视图的页眉/页脚,它是更像是屏幕的页眉/页脚)。它类似于我刚刚描述的示例,用户可以在导航栏以及导航栏“下方”列表视图中进行交互。

我对Android开发有些新意,所以如果你愿意的话,请保持良好并提供一些细节:)非常感谢提前!!

2 个答案:

答案 0 :(得分:1)

哎呦。看起来有人有类似的问题:

Layout Layers? Z-Axis?

这篇文章http://android-developers.blogspot.com/2009/03/android-layout-tricks-3-optimize-by.html解释了FrameLayout如何运作以及如何运作,这是一个更好的选择。

FrameLayout在不同的Z轴上放置对象,所以这是我正在寻找的解决方案。

答案 1 :(得分:0)

有很多方法可以实现这一点,我能想到的更简单的方法是使用线性布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/header">
      //Here you add whatever you want in your "header"
    </LinearLayout>

    //create your listview
    <ListView
    android:id="@+id/content_list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="#00000000"
    android:layout_marginRight="10dip"
    android:layout_marginLeft="10dip"
    android:layout_marginTop="10dip"
    android:layout_marginBottom="10dip"
    android:scrollbars="none"
    android:paddingBottom="5dp"
   />

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/footer">
      //Here you add whatever you want in your "footer"
    </LinearLayout>