如何在片段中添加,向上导航?

时间:2020-10-26 11:02:02

标签: android-fragments fragment android-jetpack android-architecture-navigation

你好,朋友,我在项目中添加了一个Up导航,它反映在所有片段中,问题是我只希望它反映在某些片段中。 enter image description here

我想精确地创建图像中红色圆圈所示的片段,但是要片段化

MainActivity

<partial name="~/Pages/Shared/_SomePartial.cshtml" model="Model" @*add here another parameter somehow*@ />

我要在其中添加向上导航的功能之一

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val navController = this.findNavController(R.id.nav_host_fragment)
        setupActionBarWithNavController(this,navController) 
    }

    override fun onSupportNavigateUp(): Boolean {
        val navController = this.findNavController(R.id.nav_host_fragment)
        return navController.navigateUp()
    }
}

2 个答案:

答案 0 :(得分:0)

在您的nav_graph中尝试

 <activity
    android:id="@+id/mainActivity"
    android:name="com.example.MainActivity"
    android:label="Main Activity"
    tools:layout="@layout/activity_main">
    <action
        android:id="@+id/action_mainActivity_to_loginFragment"
        app:destination="@id/loginFragment" />
</fragment>

 <fragment
    android:id="@+id/loginFragment"
    android:name="com.example.LogInFragment"
    android:label="Login In"
    tools:layout="@layout/fragment_log_in" />

答案 1 :(得分:0)

我找到了一种隐藏“向上”导航的方法,通过这种方法,我们可以决定它的显示位置。

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val hideUpButton = AppBarConfiguration(
            setOf(R.id.logInFragment)
        )

        val navController = this.findNavController(R.id.nav_host_fragment)
        setupActionBarWithNavController(this, navController,hideUpButton)

    }

    override fun onSupportNavigateUp(): Boolean {
        val navController = this.findNavController(R.id.nav_host_fragment)
        return navController.navigateUp()
    }
}