如何在菜单项后的导航抽屉中显示文本视图?

时间:2016-03-01 06:21:17

标签: android navigation-drawer

我需要在菜单项后面有一个文本视图,它不应该响应。我不需要以编程方式更新它。我正在使用导航抽屉活动。我可以从文本中创建一个图像,因此图像视图的实现也会有所帮助。 Kind of like this

4 个答案:

答案 0 :(得分:1)

<group
    android:id="@+id/first"
    android:checkableBehavior="single">

    <item
        android:id="@+id/item_1"
        android:icon="@drawable/ic_feed_grey_500_24dp"
        android:title="Feed" />
    <item
        android:id="@+id/item_2"
        android:icon="@drawable/ic_explore_grey_500_24dp"
        android:title="Explore" />
    <item
        android:id="@+id/item_4"
        android:icon="@drawable/ic_settings_grey_500_24dp"
        android:title="Settings" />

</group>
<group
    android:id="@+id/second"
    android:checkableBehavior="single">
    <item xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/navi_item_text_layout"
        android:title="Your text layout"
        app:actionLayout="@layout/text_layout"
        app:showAsAction="always" />

</group>

我想你已经有了navigation_view.xml?

答案 1 :(得分:1)

我不知道你使用哪个代码和版本来制作导航菜单。但我有3条建议。 如果你使用'android.support.design.widget.NavigationView',其中一个是在代码下面:

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start">

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

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:menu="@menu/menu_drawer">

    </android.support.design.widget.NavigationView>

    <TextView
        android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:text="your Sentences" />
</LinearLayout>

如果你使用android.support.v4.widget.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
    android:id="@+id/content_frame"...../>

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

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <TextView
            android:id="@+id/text_view1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Your Sentences" />

    </RelativeLayout>
</RelativeLayout>

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

并且最后一个建议是您在菜单中使用不同的列表项。在适配器中使用getViewTypeCount()getItemViewType(int position)。见this link

答案 2 :(得分:0)

我尝试使用线性布局,框架布局等。但他们没有滚动行为。使用组项目并没有为文本视图提供我想要的灵活性。我从另一个答案得到了这个解决方案。

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header"
    app:menu="@menu/activity_nav_drawer__main_drawer">
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_drawer_bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:headerLayout="@layout/nav_footer"/>
</android.support.design.widget.NavigationView>

将另一个嵌套导航视图对齐到底部并为其提供自己的标题将使其与底部对齐,您可以将图像视图或文本视图放入其中。

答案 3 :(得分:0)

您可以尝试这种方式。.我发布的详细信息代码可能会对您有所帮助

1)这是显示导航抽屉的主类

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<include
    layout="@layout/app_bar_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!--<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer"
    android:background="@color/app_blue"
    app:itemIconTint="@color/app_white"
    app:itemTextColor="@color/app_white">
</android.support.design.widget.NavigationView>-->
<android.support.design.widget.NavigationView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:menu="@menu/activity_main_drawer"
    android:background="@color/app_blue"
    app:itemIconTint="@color/app_white"
    app:itemTextColor="@color/app_white">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:fillViewport="true"
        android:layout_height="match_parent"
        android:scrollbars="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <android.support.design.widget.NavigationView
                android:id="@+id/nav_view"
                app:elevation="0dp"
                android:layout_height="wrap_content"
                android:layout_width="match_parent"

                app:headerLayout="@layout/nav_header_main"
                app:menu="@menu/activity_main_drawer"
                android:background="@color/app_blue"
                app:itemIconTint="@color/app_white"
                app:itemTextColor="@color/app_white">
                ></android.support.design.widget.NavigationView>

            <LinearLayout
                android:id="@+id/spacer_to_bottom"
                android:layout_width="match_parent"
                android:orientation="vertical"
                android:layout_height="0dp"
                android:layout_weight="1"/>

            <include layout="@layout/nav_footer_main"></include>
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

2)这是菜单xml类

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_menu_camera"
        android:title="@string/menu_home" />
    <item
        android:id="@+id/nav_reg_log"
        android:icon="@drawable/ic_menu_gallery"
        android:title="@string/menu_reg_log" />
    <item
        android:id="@+id/nav_profile"
        android:icon="@drawable/ic_menu_slideshow"
        android:title="@string/menu_profile" />
    <item
        android:id="@+id/nav_notification"
        android:icon="@drawable/ic_menu_manage"
        android:title="@string/menu_notificatio" />
    <item
        android:id="@+id/nav_post_offer"
        android:icon="@drawable/ic_menu_manage"
        android:title="@string/menu_post_offer" />
    <item
        android:id="@+id/nav_history"
        android:icon="@drawable/ic_menu_manage"
        android:title="@string/menu_history" />
    <item
        android:id="@+id/nav_review"
        android:icon="@drawable/ic_menu_manage"
        android:title="@string/menu_review" />
    <item
        android:id="@+id/nav_blog"
        android:icon="@drawable/ic_menu_manage"
        android:title="@string/menu_blog" />
</group>


<!--<item android:title="Communicate">
    <menu>
        <item
            android:id="@+id/nav_share"
            android:icon="@drawable/ic_menu_share"
            android:title="Share" />
        <item
            android:id="@+id/nav_send"
            android:icon="@drawable/ic_menu_send"
            android:title="Send" />
    </menu>
</item>-->
</menu>

3)这是页脚xml类

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/app_blue"
android:gravity="bottom"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:paddingTop="@dimen/nav_header_vertical_spacing"
    android:text="I am the footer" />

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="I'm always at the bottom of the sidemenu" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Muhaiminurabir@gmail.com" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Follow Us"
    android:textColor="@color/app_white"
    android:textSize="18sp"
    android:textStyle="bold" />
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="5">
    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>

最后您可以看到此

enter image description here