标签: android-navigationview

Android导航抽屉 - 将列表替换为其他列表onClick

我正在尝试在材料设计中实现一个简单的导航抽屉,因此我的抽屉顶部有一个标题和一些文本项(A:CompactHeader Drawer,...)(见图1).单击标题图像时,应打开一个列表(B:mikepenz@gmail.com,...)并"覆盖"我现有的文本项(A)(见图2).如果选择了文本项(B),则原始列表(A)应该返回其原始位置,并且(B)不再可见(参见图1).

图片1 图2

注意:这些截图来自教程,但代码太混乱了.我正在寻找一个相对简单的解决方案......我在想Fragments,但我不知道这是否是解决这个问题的正确方法.

android navigation-drawer material-design navigationview android-navigationview

6
推荐指数
1
解决办法
952
查看次数

未找到类Android支持设计小部件NavigationView

美好的一天,你能帮助我吗?在模拟器上编译/运行我的代码时出现此错误.这是我过去的示例教程.我使用了最小的Target API - 15并编译了最新的gradle 'com.android.support:design:23.0.0'

http://www.android4devs.com/2015/06/navigation-view-material-design-support.html

代码错误:

AndroidRuntime:java.lang.RuntimeException:无法启动活动ComponentInfo {com.eccp.projects.ecosavers.ecosavers/com.eccp.projects.ecosavers.ecosavers.activities.MainActivity}:android.view.InflateException:二进制XML文件行# 29:二进制XML文件行#29:错误膨胀类android.support.design.widget.NavigationView 12-29 06:43:39.409 3448-3448/com.eccp.projects.ecosavers.ecosavers E/AndroidRuntime:at android.app .ActivityThread.performLaunchActivity(ActivityThread.java:2416)

E/AndroidRuntime: 引起:android.view.InflateException:二进制XML文件行#29:二进制XML文件行#29:错误膨胀类android.support.design.widget.NavigationView

这是我的代码: MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //SET my own toolbar
    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);

    mNavigationView = (NavigationView) findViewById(R.id.navigation_view);

    mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(MenuItem menuItem) {
            if (menuItem.isChecked()) menuItem.setChecked(false);
            else menuItem.setChecked(true);

            //Closing drawer on item click
            mDrawerlayout.closeDrawers();

            //Check to see which item was being clicked and perform appropriate action
            switch (menuItem.getItemId()) {


                //Replacing …
Run Code Online (Sandbox Code Playgroud)

java xml android android-studio android-navigationview

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

Java.lang.NoClassDefFoundError使用Android支持设计NavigationView时出现问题

在应用程序上使用NavigationView时出现以下问题:

java.lang.NoClassDefFoundError:android.support.design.internal.NavigationMenuPresenter

我在这个示例项目中遇到了同样的问题:

https://github.com/xamarin/monodroid-samples/tree/master/android5.0/Cheesesquare

测试:

Android 5.1

额外的信息:

=====================

Xamarin Studio版本5.10.1(版本6)安装UUID:4f372b0c-765f-463b-9408-1bd0211e4e94运行时:Mono 4.2.1(显式/ 6dd2d0d)GTK + 2.24.23(Raleigh主题)

包版本:402010102 Xamarin.Profiler未安装

Apple Developer Tools Xcode 7.2(9548)Build 7C68

Xamarin.Mac未安装

Xamarin.Android版本:6.0.0.34(商业版)Android SDK:/ Users/rdelrosario/Library/Developer/Xamarin/android-sdk-mac_x86支持的Android版本:2.3(API级别10)4.0.3(API级别15)4.1 (API级别16)4.2(API级别17)4.3(API级别18)4.4(API级别19)4.4.87(API级别20)5.0(API级别21)5.1(API级别22)6.0(API级别23)

SDK工具版本:24.4.1 SDK平台工具版本:23.1 SDK构建工具版本:23.0.2

Java SDK:/ usr java version"1.8.0_25"Java(TM)SE运行时环境(版本1.8.0_25-b17)Java HotSpot(TM)64位服务器VM(版本25.25-b02,混合模式)

Xamarin Android Player版本:0.6.5位置:/ Applications/Xamarin Android Player.app

Xamarin.iOS版本:9.4.0.0(商业版)哈希:7322991分支:master建立日期:2015-12-08 16:20:29-0500

构建信息版本ID:510010006 Git修订版:0b60eecdb531933734519c13257d16a780274aab构建日期:2015-12-04 20:28:20-05 Xamarin插件:9876fd7c9837977178411ec7375b4352c0a0d6af构建通道:monodevelop-lion-cycle6-baseline

操作系统Mac OS X 10.10.5 Darwin Rendys-MacBook-Pro.local 14.5.0 Darwin内核版本14.5.0 Tue Sep 1 21:23:09 PDT 2015 root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64

xamarin.android xamarin navigationview androiddesignsupport android-navigationview

6
推荐指数
1
解决办法
5747
查看次数

如何在android中使用图标字体在导航视图的菜单中使用图标

我正在尝试将使用png资源的Android应用程序迁移到图标字体.我可以使用列表视图在导航抽屉中成功使用它.但是我无法在导航视图中使用它,只需在菜单的xml文件中指定它即可.

这是我尝试时得到的 Navigation Drawer

当我尝试使用导航抽屉

我不知道如何使用图标字体navigation view来获取那些标记的图标.

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_apple"
        android:icon="@drawable/ic_menu_apple"
        android:title="Apple" />
    <item
        android:id="@+id/nav_chrome"
        android:icon="@drawable/ic_menu_chrome"
        android:title="Orange" />
    <item
        android:id="@+id/nav_left"
        android:icon="@drawable/ic_menu_left"
        android:title="Grapes" />
  </group>
Run Code Online (Sandbox Code Playgroud)

如何在此菜单中使用图标字体设置这些图标?

android font-awesome icon-fonts navigationview android-navigationview

6
推荐指数
1
解决办法
1399
查看次数

在navigationviewout的导航视图中为标题和菜单之间创建分隔符

对于a navigationview,我们可以通过将它们分成两组来创建两个项目之间的分隔符.但是我们如何在标题和菜单之间创建一个分隔符呢?我试图在菜单顶部创建一个空组,但它不起作用.

navigationview看起来很酷的默认主题,但我喜欢黑白风格.但是当我无法在标题和菜单之间创建分隔符时,它看起来很尴尬(悲伤)

在此输入图像描述

android-navigationview

6
推荐指数
1
解决办法
1134
查看次数

使用NavigationView的DrawerLayout - 未在点击上显示涟漪效应

我在抽屉上看到可以看到点击效果的问题.

我有活动xml布局如下:

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    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: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.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

你可以看到我放入NavigationView我的DrawerLayout然后NavigationView使用菜单xml文件填充.

activity_main_drawer.xml看起来如下:

<menu
xmlns:android="http://schemas.android.com/apk/res/android"
>
<group>
    <item
        android:id="@+id/id1"
        android:title="Item 1"/>
    <item
        android:id="@+id/id2"
        android:title="Item 2"/>
    <item
        android:id="@+id/id3"
        android:title="Item 3"/>
    <item
        android:id="@+id/id4"
        android:title="Item 4"/>
</group>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我这样做时,我点击该抽屉菜单中的项目后没有任何视觉效果.我想要的是所谓的"涟漪效应".我该怎么做?

android navigation-drawer drawerlayout navigationview android-navigationview

6
推荐指数
1
解决办法
909
查看次数

Android 导航问题:多个返回堆栈

我的问题是,当我尝试使用底部导航更改片段时,它会起作用,但在一种情况下除外。我有 5 个片段,当我进入第 3 个片段并进入第 5 个片段后,第 5 个片段的图标 don\xc2\xb4t 改变了它的颜色。之后,当我进行另一次导航时,应用程序崩溃并给出下一个错误:

\n
java.lang.IndexOutOfBoundsException: fromIndex = -1\n    at java.util.ArrayList.subListRangeCheck(ArrayList.java:1014)\n    at java.util.ArrayList.subList(ArrayList.java:1008)\n    at androidx.navigation.fragment.FragmentNavigator.popBackStack(FragmentNavigator.kt:80)\n    at androidx.navigation.NavController.popBackStackInternal(NavController.kt:275)\n    at androidx.navigation.NavController.popBackStackInternal(NavController.kt:558)\n    at androidx.navigation.NavController.navigate(NavController.kt:1682)\n    at androidx.navigation.NavController.navigate(NavController.kt:1541)\n    at androidx.navigation.NavController.navigate(NavController.kt:1468)\n    at androidx.navigation.ui.NavigationUI.onNavDestinationSelected(NavigationUI.kt:92)\n    at androidx.navigation.ui.NavigationUI.setupWithNavController$lambda-6(NavigationUI.kt:602)\n    at androidx.navigation.ui.NavigationUI.$r8$lambda$6wzEv9QqEZKdQFS1sQQy-bdQvgE(Unknown Source:0)\n    at androidx.navigation.ui.NavigationUI$$ExternalSyntheticLambda2.onNavigationItemSelected(Unknown Source:2)\n    at com.google.android.material.navigation.NavigationBarView$1.onMenuItemSelected(NavigationBarView.java:295)\n    at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:834)\n    at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)\n    at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:985)\n    at com.google.android.material.navigation.NavigationBarMenuView$1.onClick(NavigationBarMenuView.java:133)\n    at android.view.View.performClick(View.java:7520)\n    at android.view.View.performClickInternal(View.java:7489)\n    at android.view.View.access$3600(View.java:826)\n    at android.view.View$PerformClick.run(View.java:28555)\n    at android.os.Handler.handleCallback(Handler.java:938)\n    at android.os.Handler.dispatchMessage(Handler.java:99)\n    at android.os.Looper.loop(Looper.java:233)\n    at android.app.ActivityThread.main(ActivityThread.java:8010)\n    at java.lang.reflect.Method.invoke(Native Method)\n    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:631)\n    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:978)\n
Run Code Online (Sandbox Code Playgroud)\n

但是,如果之前我单击了第 5 个片段并转到第 3 …

android android-navigation android-navigationview android-navigation-bar android-navigation-graph

6
推荐指数
1
解决办法
1270
查看次数

在导航抽屉菜单中以编程方式添加项目

我的应用程序中有一个导航抽屉。我想在导航抽屉菜单的第二部分以编程方式添加一个选项。menu.xml 是-

<group android:checkableBehavior="single">
    <item android:id="@+id/nav_connect_sensor"
        android:icon="@drawable/ic_action_bluetooth"
        android:title="Connect Bluetooth" />
    <item android:id="@+id/nav_take_tour"
        android:icon="@drawable/ic_action_video"
        android:title="Take a tour" />
    <item android:id="@+id/nav_my_stats"
        android:icon="@drawable/ic_action_bargraph"
        android:title="My Stats" />
</group>

<item android:title="@string/navigation_drawer_group_title"
    android:id="@+id/other_labels">
    <menu>
        <item android:id="@+id/nav_myAccountSettings"
            android:icon="@drawable/ic_settings"
            android:title="My Account" />
        <item android:id="@+id/nav_application_settings"
            android:icon="@drawable/ic_action_settings"
            android:title="Application Settings" />
        <item android:id="@+id/comparison"
            android:icon="@drawable/ic_swap_horiz"
            android:title="Compare"/>
        <item android:id="@+id/nav_help_and_feedback"
            android:icon="@drawable/ic_live_help"
            android:title="Help and Feedback" />
        <item android:id="@+id/nav_logout"
            android:icon="@drawable/ic_action_exit"
            android:title="Sign Out" />
    </menu>
</item>
Run Code Online (Sandbox Code Playgroud)

以编程方式添加选项 -

    Menu menu = mNavigationView.getMenu();
    menu.add(0, Menu.FIRST, Menu.FIRST, "Players")
        .setIcon(R.drawable.ic_people);
Run Code Online (Sandbox Code Playgroud)

这个选项是最后添加的。如何在第三个位置添加选项,即在应用程序设置下方

android android-navigationview

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

Android NavigationView vith 圆角

我正在Android上设计一个自定义抽屉,它的顶部和底部必须有圆角,我首先自定义顶部,我发现形状背景不透明的问题

我有:
截屏

我需要构建:
设计

我还想了解如何在底部将其四舍五入

nav_header_main.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="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="vertical"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="0dp"
            android:layout_weight="4"
            android:layout_height="wrap_content"
            android:contentDescription="@string/nav_header_desc"
            android:paddingTop="@dimen/nav_header_vertical_spacing"
            app:srcCompat="@mipmap/ic_launcher_round" />
        <LinearLayout
            android:layout_width="0dp"
            android:layout_weight="5"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="@dimen/nav_header_vertical_spacing"
                android:text="@string/nav_header_title"
                android:textColor="@color/colorWhite"
android:textAppearance="@style/TextAppearance.AppCompat.Headline" />
            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/colorWhite"
                android:text="@string/nav_header_subtitle" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

side_nav_bar.xml

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

<solid android:width="3dp"
    android:color="@color/colorPrimary"
    />
<corners android:radius="1dp"
    android:bottomRightRadius="0dp" android:bottomLeftRadius="0dp"
    android:topLeftRadius="30dp" android:topRightRadius="0dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

java android material-design android-navigationview material-components-android

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

Material Design 3 使用 colorPrimary 作为 actionBar、navBar 和日历背景颜色。我如何禁用此功能?

升级到 Material Design 3 后,我注意到某些东西的背景颜色变成了我的原色设置的褪色版本。例如,如果我将主颜色设置为红色,则导航栏和日历现在有点粉红色。

<style name="AppTheme" parent="Base.AppTheme" />

<style name="Base.AppTheme" parent="Theme.Material3.DayNight.NoActionBar">
    <item name="colorPrimary">@color/red</item>

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

我不知道为什么材料设计假设我想要这些背景颜色。我的设计文档需要白色背景,并且无法将主色设置为白色。如果我根本不设置原色,它默认为紫色!

我对导航栏有一些运气,因为你可以设置每个项目的背景颜色,但对日历则没有运气。我尝试过在日历样式上设置所有听起来与颜色相关的内容。到目前为止,除了primaryColor 之外,日历背景没有任何改变。backgroundColor、backgroundTint 等。没有任何效果。有谁知道如何在 Material Design 3 上覆盖这种行为?

我只想将 colorPrimary 设置为绿色,并将 actionBar、navBar 和 calendar 的背景颜色设置为白色。

android android-calendar material-design android-navigationview android-navigation-bar

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