Android在drawerlayout的listview底部添加textview

时间:2015-02-19 12:07:15

标签: android listview view navigation-drawer

我的布局包含一个带有片段容器和列表视图的drawerlayout。列表视图包含三个项目,我已使用适配器添加了这些项目。

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- Framelayout to display Fragments -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!-- Listview to display slider menu -->
<ListView
    android:id="@+id/list_slidermenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@drawable/listview_background_drawable"
    android:listSelector="@android:color/transparent"
    android:cacheColorHint="@android:color/transparent"/>

</android.support.v4.widget.DrawerLayout>

所以现在我想在listview(屏幕)的底部添加一个视图。我尝试使用addFooterView(),但这只是添加最后一项而不是屏幕底部的视图。我现在有一些关于stackoverflow的例子如何做但由于我的抽象布局,它们不适合我。

有没有办法将视图添加到我的列表视图并将视图的对齐方式设置为屏幕底部?

4 个答案:

答案 0 :(得分:3)

您可以通过向listview添加作为footerview的布局来执行此操作,或者使用此代码将页眉更改为页脚。

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

    <RelativeLayout
        android:id="@+id/slider"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start" >

        <LinearLayout
            android:id="@+id/header_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:background="#AA000000"
            android:orientation="horizontal"
            android:padding="5dp" >

            <com.wholesaleraja.model.RoundImage
                android:id="@+id/profile_icon"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_gravity="center_vertical"
                android:padding="5dp"
                android:src="@drawable/default_image_male" />

            <LinearLayout
                android:id="@+id/profile_name_layout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:orientation="vertical"
                android:padding="5dp" >

                <TextView
                    android:id="@+id/profile_name"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:textColor="#ffffff"
                    android:textSize="20sp" />

                <TextView
                    android:id="@+id/profile_email"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textColor="#ffffff"
                    android:textSize="12sp" />
            </LinearLayout>
        </LinearLayout>

        <View
            android:id="@+id/header_divider"
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:layout_below="@+id/header_view"
            android:background="@color/list_divider" />

        <ListView
            android:id="@+id/list_slidermenu"
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_below="@+id/header_divider"
            android:background="@color/list_header"
            android:choiceMode="singleChoice"
            android:divider="@color/list_divider"
            android:dividerHeight="1dp"
            android:overScrollMode="never" />

    </RelativeLayout>

</android.support.v4.widget.DrawerLayout>

答案 1 :(得分:2)

在这种情况下,底部布局应从ListView中取出。您需要将所有元素包含在父布局中(最好是RelativeLayout),并在其中声明DrawerLayout和底部布局。另外,设置android:layout_alignParentBottom =&#34; true&#34;对于底部布局,它始终保持在底部。

示例:

<RelativeLayout
    ...
    ... >
    (put your drawer layout xml here)

    <BottomLayout
         android:layout_alignParentBottom="true" >
    </BottomLayout>
</RelativeLayout>

答案 2 :(得分:0)

将抽屉设置为布局,并将列表和其他视图放在其中。例如:

<!-- Listview to display slider menu -->
<LinearLayout
    android:id="@+id/list_slidermenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ListView
        android:id="@+id/lvList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:background="@drawable/listview_background_drawable"
        android:listSelector="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent"/>
    <TextView
        android:id="@+id/tvText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

答案 3 :(得分:0)

滑块菜单可以是任何类型的视图,因此您可以这样做:

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- Framelayout to display Fragments -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!-- Listview to display slider menu -->
<LinearLayout
    android:id="@+id/slidermenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start">

    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@drawable/listview_background_drawable"
        android:listSelector="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent"/>

    <TextView
        android:id="@+id/text_slidermenu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

  </LinearLayout>

</android.support.v4.widget.DrawerLayout>