Android在drawerlayout的listview底部添加textview

Posted

技术标签:

【中文标题】Android在drawerlayout的listview底部添加textview【英文标题】:Android add textview at the bottom of listview in drawerlayout 【发布时间】:2015-02-19 12:07:14 【问题描述】:

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

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

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

<!-- Listview to display slider menu -->
<ListView
    android:id="@+id/list_slidermenu"
    android:layout_
    android:layout_
    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>

所以现在我想在列表视图(屏幕)的底部添加一个视图。我用 addFooterView() 尝试过,但这只是在最后一项下添加视图,而不是在屏幕底部。我现在有一些关于 *** 的示例,但是由于我的抽屉布局,它们对我不起作用。

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

【问题讨论】:

【参考方案1】:

您可以通过将布局作为页脚视图添加到列表视图来做到这一点,或者使用此代码只需将页眉更改为页脚。

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_
        android:layout_ >
    </FrameLayout>

    <RelativeLayout
        android:id="@+id/slider"
        android:layout_
        android:layout_
        android:layout_gravity="start" >

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

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

            <LinearLayout
                android:id="@+id/profile_name_layout"
                android:layout_
                android:layout_
                android:layout_gravity="center_vertical"
                android:orientation="vertical"
                android:padding="5dp" >

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

                <TextView
                    android:id="@+id/profile_email"
                    android:layout_
                    android:layout_
                    android:textColor="#ffffff"
                    android:textSize="12sp" />
            </LinearLayout>
        </LinearLayout>

        <View
            android:id="@+id/header_divider"
            android:layout_
            android:layout_
            android:layout_below="@+id/header_view"
            android:background="@color/list_divider" />

        <ListView
            android:id="@+id/list_slidermenu"
            android:layout_
            android:layout_
            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>

【讨论】:

@RyuZz - 请您将其标记为正确。所以,其他人也可以看到这个答案。【参考方案2】:

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

例子:

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

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

【讨论】:

@ihsan 但主布局必须是“ @ihsan 但在这种情况下,我总是在屏幕上看到 BottomLayout,它没有被滑块菜单隐藏...如何仅在滑块菜单可见时才显示 BottomLayout? @KryNac 在您的 DrawerLayout 中放入一个 RelativeLayout,并在其中放入带有 android:layout_alignParentBottom="true" 属性的 BottomLayout。现在你的 BottomLayout 只有在抽屉打开时才可见。【参考方案3】:

将您的抽屉设置为 Layout 并将列表和其他视图放入其中。例如:

<!-- Listview to display slider menu -->
<LinearLayout
    android:id="@+id/list_slidermenu"
    android:layout_
    android:layout_
    android:orientation="vertical">
    <ListView
        android:id="@+id/lvList"
        android:layout_
        android:layout_
        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_
        android:layout_ />
</LinearLayout>

【讨论】:

【参考方案4】:

滑块菜单可以是任何类型的视图,所以你可以做这样的事情:

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

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

<!-- Listview to display slider menu -->
<LinearLayout
    android:id="@+id/slidermenu"
    android:layout_
    android:layout_
    android:layout_gravity="start">

    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_
        android:layout_
        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_
        android:layout_ />

  </LinearLayout>

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

【讨论】:

的结束标签应该是 对吧?

以上是关于Android在drawerlayout的listview底部添加textview的主要内容,如果未能解决你的问题,请参考以下文章

Android - V之DrawerLayout的使用

android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕

Android 使用DrawerLayout快速实现侧滑菜单

Android在drawerlayout的listview底部添加textview

Android Studio DrawerLayout控件在v4包中找不到

Android 中 DrawerLayout + ViewPager 怎么解决滑动冲突