gpt4 book ai didi

Android Jetpack导航,另一个主机 fragment 内的主机 fragment

转载 作者:IT老高 更新时间:2023-10-28 13:40:47 34 4
gpt4 key购买 nike

我正在尝试实现一个简单的设计。一个带有宿主 fragment 的 Activity 。

问题是,其中一个目的地有一个底部导航栏。

这是一幅素描 enter image description here

经过一番研究,我发现最好的做法是拥有一个带有宿主 fragment 的 Activity。

在我的特定情况下,底部导航栏在登录和注册 fragment 中不应该是可见的,只是隐藏它对我来说似乎不合适。

我设法创建了一个带有底部导航栏的 Activity ,将 主 fragment 连接到 frag 1frag 2frag 3 ,但现在我需要添加登录 fragment 注册 fragment ,我不知道如何处理导航。

这是没有身份验证 fragment 的应用程序代码。

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Presentation.MainActivity">

<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
app:title="Glucose Entries"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?colorPrimary"
android:theme="@style/ToolbarTheme"/>

<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:menu="@menu/bottom_navigation_bar"/>

<fragment
android:id="@+id/nav_host_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true" />

</LinearLayout>

还有:

class MainActivity : AppCompatActivity() {

private lateinit var navController: NavController

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)

navController = Navigation.findNavController(this, R.id.nav_host_fragment)
bottom_nav.setupWithNavController(navController)
NavigationUI.setupActionBarWithNavController(this, navController)
}

// stuff
}

还有导航文件:

<?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/mobile_navigation"
app:startDestination="@id/mainListFragment">

<!--frag 1 -->
<fragment
android:id="@+id/mainListFragment"
android:name="com.gluco.Presentation.MainList.MainListFragment"
android:label="Glucose Entries"
tools:layout="@layout/main_list_fragment">
</fragment>

<!--frag 2 -->
<fragment
android:id="@+id/statisticsFragment"
android:name="com.gluco.Presentation.Statistics.StatisticsFragment"
android:label="statistics_fragment"
tools:layout="@layout/statistics_fragment" />

<!--frag 3 -->
<fragment
android:id="@+id/settingsFragment"
android:name="com.gluco.Presentation.Settings.SettingsFragment"
android:label="SettingsFragment" />

</navigation>

我应该把导航栏隐藏在不应该在的 fragment 上吗?

另外,我认为另一种解决方案可能是不使用底部导航栏提供的自动导航,而是创建自己的操作来从 ma​​in fragment 导航到 frag 1frag 2frag 3

最佳答案

恕我直言,让您的单一 Activity 成为关于哪个 fragment 显示和隐藏导航栏的事实来源对我来说听起来不错。

关于Android Jetpack导航,另一个主机 fragment 内的主机 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54007051/

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