gpt4 book ai didi

android - 使用导航组件在不同图形之间导航

转载 作者:行者123 更新时间:2023-11-29 00:51:29 25 4
gpt4 key购买 nike

我有两个 Activity ,一个包含登录过程的所有 fragment ,另一个包含主应用程序的所有 fragment 。

假设我想从 Activity1(包含登录的所有导航图)导航到 Activity2(包含主应用程序的所有导航图)

  class LoginActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
}

fun goToMainActivity(){
startActivity(Intent(this,MainActivity::class.java))
finish()
}
}

这里我调用方法goToMainActivity()

 class LoginFragment : Fragment() {

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_login,container,false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

btn_go.setOnClickListener {
// call the method goToMainActivity() to kill all fragments contained by that Activity and move foward to MainActivity with another nav_graph
}
}
}

由于 LoginActivity 拥有一个 nav_graph 并且是所有登录 fragment 的导航宿主,现在我想杀死包含在 LoginActivity 中的所有 fragment 并转向一个拥有不同导航图的新 Activity (MainActivity)

这样做的好方法吗?或者我应该以不同的方式导航?

最佳答案

您不需要定义第二个 Activity ,只需将第二个导航图添加到您的 nav_graph.xml 文件即可。像这样的东西:

<?xml version="1.0" encoding="utf-8"?>
<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/loginFragment">

<fragment
android:id="@+id/loginFragment"
android:name="com.mycompany.loginFragment"
tools:layout="@layout/fragment_login"
android:label="Login" >
<action
android:id="@+id/action_loginFragment_to_new_graph"
app:destination="@id/new_graph" />
</fragment>

<include app:graph="@navigation/new_graph" />
</navigation>

然后,使用您的 navController,导航操作:

navController.navigate(R.id.action_loginFragment_to_new_graph)

关于android - 使用导航组件在不同图形之间导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59196327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com