标签: android-navigation-graph

如何禁用汉堡图标变成箭头(导航组件)

请帮帮我。
简介:我使用导航组件,单活动模式,通过底部导航菜单切换 3 个片段。我还有抽屉导航。
所有片段都处于同一级别(都是根目录,直接从bottm nav访问)
事情应该是这样的:对于所有片段,必须有一个带有抽屉图标的工具栏。
问题:当应用程序启动时,主页片段显示抽屉的标准汉堡包图标,这是可以的。但是当我切换到任何其他片段时,抽屉图标变成箭头图标。此外,当按下该箭头时,抽屉从左侧滑动。这意味着它仍然可以作为显示抽屉菜单的按钮,但只是图标发生了变化
问题:从底部导航菜单切换到另一个片段时,如何禁用汉堡图标转换为箭头图标?
文件:导航图:

<navigation 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/nav_graph"
    app:startDestination="@id/bottom_nav_proposals"
    >
    <fragment
        android:id="@id/bottom_nav_proposals"
        android:name="com.base.ProposalsContainerFragment"
        android:label="fragment_proposals"
        tools:layout="@layout/fragment_proposals" />
    <fragment
        android:id="@id/bottom_nav_vehicles"
        android:name="com.base..DriversVehiclesFragment"
        android:label="Vehicles" >
    </fragment>
    <fragment
        android:id="@id/bottom_nav_drivers"
        android:name="com.bijov1apps.base.carrier.root.drivers.DriversVehiclesFragment"
        android:label="Drivers" >
    </fragment>
</navigation>
Run Code Online (Sandbox Code Playgroud)

活动:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
//initializing Navigation COmponent
       val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_carrier_root) as NavHostFragment
        val navController = navHostFragment.navController
//setting up toobar stuff
        val toolbar: Toolbar = findViewById(R.id.toolbar_root)
        toolbar.setupWithNavController(navController, drawerLayout)
//setting up navigation drawer stuff
        val …
Run Code Online (Sandbox Code Playgroud)

android kotlin navigation-drawer hamburger-menu android-navigation-graph

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

使用 SafeArgs 将参数从片段传递到活动

使用导航图,当我从片段导航到活动并使用 safeargs 传递参数时,在活动中,我无法获取参数。我怎样才能得到从片段传递的参数???

在片段中,我可以通过getArgument()函数获取参数,但不能在活动中获取参数。

在片段中,我通过以下方式切换到另一个活动:

findNavController().navigate(AFragmentDirections.actionAFragmentToBActivity(1)
Run Code Online (Sandbox Code Playgroud)

并在 B 活动中通过以下方式获取 onCreate 中的参数:

val args = BActivityArgs.fromBundle(savedInstanceState!!)
Run Code Online (Sandbox Code Playgroud)

但我的应用程序立即崩溃。

android kotlin android-safe-args android-navigation-graph

0
推荐指数
1
解决办法
3582
查看次数

Android 导航组件 popUpTo 返回弹出的片段

请不要将其标记为重复,我已经阅读了这些问题,但仍然无法正常工作 导航组件 popUpTo bug Android 导航组件 popUpTo 行为 Android 导航组件 + 登录流程 + 嵌套 BottomNavigationView

我在用

def nav_version = "2.2.1"
    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
Run Code Online (Sandbox Code Playgroud)

场景:这是我的应用程序图表 在此输入图像描述

这是我的导航代码:

<fragment
        android:id="@+id/splashFragment"
        android:name="com.view.SplashFragment"
        android:label="SplashFragment" >
        <action
            android:id="@+id/action_splashFragment_to_loginFragment"
            app:destination="@id/loginFragment"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popUpTo="@id/loginFragment"
            app:popUpToInclusive="true"/>
        <action
            android:id="@+id/action_splashFragment_to_mainFragment"
            app:destination="@id/mainFragment"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popUpTo="@id/mainFragment"
            app:popUpToInclusive="true"/>
    </fragment>
Run Code Online (Sandbox Code Playgroud)

当我在开机状态下按后退按钮MainFragmentLoginFragment仍然能够导航回splashFragment 时。我已经有app:popUpToapp:popUpToInclusive标签了。我希望我的应用程序不要导航回splashFragment

android android-navigation android-navigation-graph

0
推荐指数
1
解决办法
3473
查看次数

带有导航组件和导航抽屉的单一活动应用程序

我想创建一个单一活动应用程序,为简单起见,它只包含以下屏幕:登陆、登录、注册、主页、个人资料。主页和个人资料屏幕仅在用户登录后才可见,并且属于导航抽屉。

不幸的是,我想到的是用 nav_graph_1 创建一个活动,其中包含以下目的地:登陆、登录、注册。然后使用 nav_graph_2(主页和个人资料目的地)创建另一个活动,其中将包含导航抽屉的所有设置:例如setupActionBarWithNavController,带有 nav_graph_2 和抽屉的 appBarConfiguration。

是否可以在单个活动应用程序中实现上述内容以及如何实现?

android navigation-drawer android-architecture-navigation android-jetpack-navigation android-navigation-graph

0
推荐指数
1
解决办法
690
查看次数

Android:没有通过 app:startDestination 为 xxx:id/nav_graph 定义起始目的地

在 nav_graph 中,即使我已经使用过,我也会收到警告

在此处输入图片说明

项目级gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.72'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        def nav_version = "2.3.0-beta01"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

应用级gradle:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: "androidx.navigation.safeargs.kotlin"

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.demo.sample" …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack android-jetpack-navigation android-navigation-graph

-2
推荐指数
1
解决办法
4345
查看次数