在活动底部显示ListView

时间:2013-04-17 07:20:49

标签: android listview

我刚开始在Android上开发,所以请耐心等待。我有一个活动显示今天的日期的一些天气数据,我想在接下来的7天内在活动底部列出更多天气数据,如下所示:

enter image description here

然而,我对实现这一目标的最佳方法感到困惑。我在考虑使用ListView,但我对如何使用它们感到困惑。根据我的收集,我需要在res/layout中创建一个ListView布局,然后在我的主活动上使用一个片段,它的布局设置为我刚刚制作的ListView布局。那是对的吗?或者更简单的解决方案是将ListView置于主要活动的底部吗?

或者,我是否使用了完全错误的控件来完成我想做的事情?

2 个答案:

答案 0 :(得分:0)

您可以通过以下代码轻松完成此布局:

<Relativelayout...>

    <EditText android="@+id/edit1"
      android:alignParentTop="true"
      ... />

    <LinearLayout android:id="@+id/YOUR_MIDDLE_DATA"
      android:above="@+id/listview1"
      android:below="@+id/edit1" ...>
      ...
      ...
    </Linearlayout>

    <Listview android:id="@+id/listview1"
      android:above="@+id/txt1"
      ... />

    <Textview android:id="@+id/txt1"
      ...
      android:alignParentBottom="true" />
</RelativeLayout>

您也可以使用重量进行自定义。

希望这会对你有所帮助。

答案 1 :(得分:0)

以下面的XML为例。在这个(来自我的应用程序的实际XML)中,我在EditText之上有一个较小的ListView,但您可以将其更改为您需要的其他内容。这实际上说明的是,您可以在顶部或底部有一个ListView以及其他一些内容。 (我删除了ListView之后的Admob代码)

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/phone_thing_comment_bg"
        android:gravity="center"
        android:paddingBottom="5dp"
        android:paddingLeft="9dp"
        android:paddingRight="9dp"
        android:paddingTop="5dp" >

        <EditText
            android:id="@+id/editFilterList"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            android:background="@drawable/phone_thing_comment_box"
            android:drawableLeft="@drawable/filter_search_icon"
            android:drawablePadding="5dp"
            android:hint="Type Friends Name"
            android:inputType="text"
            android:maxLines="1"
            android:textColor="#ff333333"
            android:textColorHint="#ff78797d"
            android:textCursorDrawable="@null" >
        </EditText>
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:cacheColorHint="@android:color/transparent"
            android:divider="#000000"
            android:dividerHeight="0dp"
            android:fadingEdge="none"
            android:persistentDrawingCache="scrolling"
            android:scrollbars="none" >
        </ListView>

        <TextView
            android:id="@android:id/empty"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:padding="10dp"
            android:text="@string/no_friends"
            android:textColor="#f1f1f1"
            android:textSize="15sp"
            android:textStyle="bold"
            android:visibility="gone" >
        </TextView>
    </LinearLayout>
</LinearLayout>

使用此方法的专业人员ListView会像它应该滚动一样,但它上面的Widgets将始终是静止的。使用此方法的缺点是在屏幕较小的设备上,可能没有足够的空间显示ListView内容,用户可能需要滚动很多。

或者,您可以将Widgets分隔在ListView之上,将它们放在不同的XML文件中,并将其作为{{1添加到ListView(在Java代码中) }}。这使得Header以上的内容与ListView内容一起移动。

所以这段代码使用不同的XML,它将作为Java代码中的Header添加:

ListView

优点和缺点与前面的例子完全相反。

无论在 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/phone_thing_comment_bg" android:gravity="center" android:paddingBottom="5dp" android:paddingLeft="9dp" android:paddingRight="9dp" android:paddingTop="5dp" > <EditText android:id="@+id/editFilterList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="4dp" android:background="@drawable/phone_thing_comment_box" android:drawableLeft="@drawable/filter_search_icon" android:drawablePadding="5dp" android:hint="Type Friends Name" android:inputType="text" android:maxLines="1" android:textColor="#ff333333" android:textColorHint="#ff78797d" android:textCursorDrawable="@null" > </EditText> </LinearLayout> 还是Fragment中使用哪种方法都可以使用。