相关疑难解决方法(0)

如何使用菜单布局将自定义项添加到NavigationView?

我一直在尝试通过使用NavigationViewAndroid设计支持库中的新类来简化一些导航抽屉代码.如果您只想要左侧的图标和右侧的文本(例如文档中的示例),那么它的效果很好,但是如果我想android.support.v7.widget.SwitchCompat在Google Play电影应用中添加一个自定义视图,那该怎么办?看下面的截图)?

Google Play电影

我已尝试使用该actionLayout属性指定自定义布局文件,如下面的示例代码中所示,但该属性似乎被忽略,因为它不起作用.

res/menu/navigation_drawer.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:id="@+id/group1"
            android:checkableBehavior="single">
        <item
            android:id="@+id/nav_screen1"
            android:icon="@drawable/ic_list_black_24dp"
            android:title="Screen 1" />
        <item
            android:id="@+id/nav_screen2"
            android:icon="@drawable/ic_search_black_24dp"
            android:title="Screen2"/>
    </group>
    <group  android:id="@+id/group2">
        <item
            android:id="@+id/nav_custom"
            android:icon="@drawable/custom_icon_24dp"
            app:actionLayout="@layout/nav_drawer_switch"
            android:title="Custom item with switch"/>
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/ic_settings_black_24dp"
            android:title="Settings"/>
    </group>
</menu>
Run Code Online (Sandbox Code Playgroud)

res/layout/nav_drawer_switch.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.v7.widget.SwitchCompat
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:text="Custom item with switch"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?理想情况下,我想在仍然使用我的菜单布局的同时添加自定义视图,但如果不使用粗糙的黑客(如利用支持库生成的现有布局)那是不可能的,那么我想知道代码最少的解决方案,仍然值得转换NavigationView.

android navigation-drawer

51
推荐指数
4
解决办法
4万
查看次数

在导航抽屉底部添加项目

我是android studio的新手,我一直在努力学习如何使用导航抽屉布局.我正在使用Nav Drawer的标准模板,并希望在菜单底部添加一个项目,如下所示:

导航抽屉图像

起初我认为抽屉中的项目在LinearLayout中,并且我可以很容易地做我想要的,但xml代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_camera"
        android:icon="@drawable/ic_menu_camera"
        android:title="OP1" />
    <item
        android:id="@+id/nav_gallery"
        android:icon="@drawable/ic_menu_gallery"
        android:title="OP2" />
    <item
        android:id="@+id/nav_slideshow"
        android:icon="@drawable/ic_menu_slideshow"
        android:title="OP3" />
    <item
        android:id="@+id/nav_manage"
        android:icon="@drawable/ic_menu_manage"
        android:title="OP4" />
</group>


<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_logout"
        android:title="Log out" />
</group>
Run Code Online (Sandbox Code Playgroud)

有没有办法让包含注销项的组位于底部?提前感谢您的回答!

android android-layout

27
推荐指数
1
解决办法
2万
查看次数

NavigationView:如何插入没有子组的分隔符?

如何在新的NavigationView中放置没有标题子组的分隔符?

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">


<group android:checkableBehavior="single">
    <item
        android:id="@+id/drawer_armario"
        android:icon="@drawable/armario"
        android:title="@string/armario"  />
    <item
        android:id="@+id/drawer_amigos"
        android:icon="@drawable/amigos"
        android:title="@string/amigos" />

</group>

<item android:title="Configuración">
    <menu>
        <item

            android:id="@+id/drawer_ajustes"
            android:icon="@drawable/ajustes"
            android:title="@string/ajustes" />
        <item
            android:id="@+id/drawer_ayuda"
            android:icon="@drawable/ayuda"
            android:title="@string/ayuda" />
        <item
            android:id="@+id/drawer_sign_out"
            android:icon="@drawable/sign_out"
            android:title="@string/sign_out" />

    </menu>

</item>
Run Code Online (Sandbox Code Playgroud)

我想在没有Configuración标题的情况下在amigos和ajustes项目之间添加一条线.

谢谢!!!

android divider android-support-library navigationview android-navigationview

22
推荐指数
3
解决办法
1万
查看次数

如何在NavigationView中添加页脚按钮

我正在关注帖子"Android设计库NavigationView with footer",在NavigationView底部添加按钮.问题是只出现最后一个NavigationView,它占据整个屏幕高度.

这是我的布局:

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

    <!-- Activity here -->

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

        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_menu_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="top"
            app:menu="@menu/menu_drawer"/>

        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_footer_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            app:menu="@menu/menu_drawer_footer"/>

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

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述

我怎样才能解决这个问题?

android drawerlayout navigationview

10
推荐指数
2
解决办法
9575
查看次数

如何在导航视图中定位菜单项?

我的问题是有关最近发布Navigation ViewDesign Support Library. 菜单

我想Log In在底部定位Navigation View,我该怎么做?我的菜单XML现在看起来像这样:

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

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/navigation_sub_item_1"
            android:icon="@drawable/ic_action_event"
            android:title="@string/home" />
        <item
            android:id="@+id/navigation_sub_item_2"
            android:icon="@drawable/ic_action_person"
            android:title="@string/profile" />
        <item
            android:id="@+id/navigation_sub_item_3"
            android:icon="@drawable/ic_action_labels"
            android:title="@string/tags" />
        <item
            android:id="@+id/navigation_sub_item_4"
            android:icon="@drawable/ic_action_settings"
            android:title="@string/log_in" />
    </group>

</menu>
Run Code Online (Sandbox Code Playgroud)

这是我的布局:

     <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:background="@color/white_1000">

        <include
            android:id="@+id/toolbar"
            layout="@layout/toolbar" />

        <android.support.v4.widget.DrawerLayout
            android:id="@+id/drawer_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/toolbar">

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />

            <android.support.design.widget.NavigationView
                android:id="@+id/main_drawer"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="start"
                app:headerLayout="@layout/drawer_header"
                app:menu="@menu/drawer_menu" /> …
Run Code Online (Sandbox Code Playgroud)

android navigationview

7
推荐指数
1
解决办法
8853
查看次数

如何使用设计支持库在Android中的导航抽屉中添加页脚?

如何添加页脚NavigationView?在我的情况下,NavigationView项目由菜单资源膨胀.最初我尝试将LinearLayout添加为页脚,但是NavigationView不可滚动且页脚与导航菜单项重叠.我想将Google Play评分细分作为页脚实现,如下图所示:

在此输入图像描述

navigation_drawer.xml:

<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="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">

  <android.support.v7.widget.Toolbar
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@color/colorPrimary"
      android:id="@+id/toolbar"
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
      app:title="@string/app_name" />

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

    <FrameLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/containerView">
    </FrameLayout>

    <android.support.design.widget.NavigationView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:id="@+id/shitstuff"
        app:itemTextColor="@color/green"
        app:menu="@menu/drawermenu"
        app:headerLayout="@layout/drawer_header"
        android:layout_marginTop="-24dp">
    </android.support.design.widget.NavigationView>

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

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer

5
推荐指数
1
解决办法
7363
查看次数

具有内部间距的Android NavigationView

我目前正在开发一个支持NavigationView的Android应用程序.我不得不质疑我想要它:(1)我想将导航元素分成两个区域:一个位于标题下方,一个位于底端.(2)我想删除分隔符和它下面的元素之间的填充.

它看起来如何看起来应该如何: 它的外观与它的外观

我知道有一种方法可以覆盖填充值,这将修复(2).但这感觉有点脏,也许还有另一种方法可以实现这两点.我的想法是获取"设置"元素并以编程方式更改其布局,但到目前为止,我还没有找到一种方法来实现这一点.或者我真的必须自己构建页脚?

另外,我不太确定我应该用Google搜索什么流行语.也许已经有一个简单的答案了.

我目前的代码.现在Activity内部没有布局更改,因此我没有添加它.

activity_main.xml中:

<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/main_drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".main.MainActivity">

    <!-- The content -->
    <LinearLayout>...</LinearLayout>

    <!-- The navigation drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/main_navigationview"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        app:headerLayout="@layout/mainnav_header"
        app:itemBackground="@drawable/menu_background"
        app:itemIconTint="@color/menu_text"
        app:itemTextColor="@color/menu_text"
        app:menu="@menu/maindrawer">

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

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

menu.xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<group android:id="@+id/main_drawer_menu1" android:checkableBehavior="single">
    <item
        android:id="@+id/main_navigationview_request"
        android:checkable="false"
        android:enabled="false"
        android:icon="@drawable/ic_navigationdrawer_request"
        android:title="@string/main_navigation_request"
        app:actionLayout="@layout/menuitem_default" />
    <item
        android:id="@+id/main_navigationview_invitations"
        android:checked="true"
        android:icon="@drawable/ic_navigationdrawer_invitations"
        android:title="@string/main_navigation_invitations"
        app:actionLayout="@layout/menuitem_default" />
    <item
        android:id="@+id/main_navigationview_prev"
        android:icon="@drawable/ic_navigationdrawer_previous"
        android:title="@string/main_navigation_previnvites"
        app:actionLayout="@layout/menuitem_default" />
    <item
        android:id="@+id/main_navigationview_info"
        android:icon="@drawable/ic_navigationdrawer_info"
        android:title="@string/main_navigation_info"
        app:actionLayout="@layout/menuitem_default" />
</group>
<group android:id="@+id/main_drawer_menu2" android:checkableBehavior="single">
    <item
        android:id="@+id/main_navigationview_settings"
        android:checked="true"
        android:icon="@drawable/ic_navigationdrawer_settings" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-menu navigationview

5
推荐指数
1
解决办法
1642
查看次数