Android Studio,如何导航到片段保留相同选择的菜单项

发布于 2025-01-18 16:05:54 字数 4346 浏览 2 评论 0原文

我有一个基于个人资料的应用。我的底部导航栏正常工作。当您在搜索片段中搜索用户并单击用户时,它会导航到配置文件片段。但是,我希望底部导航保留在搜索菜单项标签上(类似于Instagram)。我该怎么做?这是我的导航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/mobile_navigation"
    app:startDestination="@+id/navigation_profile">

    <fragment
        android:id="@+id/navigation_map"
        android:name="com.example.myapplication.fragments.map.MapFragment"
        android:label="@string/title_map"
        tools:layout="@layout/fragment_map" />

    <fragment
        android:id="@+id/navigation_search"
        android:name="com.example.myapplication.fragments.search.SearchFragment"
        android:label="Search"
        tools:layout="@layout/fragment_search">
        <action
            android:id="@+id/action_navigation_search_to_navigation_profile"
            app:destination="@id/navigation_profile" >
            <argument
                android:name="isAdmin"
                app:argType="boolean" />
            <argument
                android:name="Username"
                app:argType="string" />
            <argument
                android:name="from"
                app:argType="string" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_camera"
        android:name="com.example.myapplication.fragments.camera.CameraFragment"
        android:label="@string/title_camera"
        tools:layout="@layout/fragment_camera">
        <action
            android:id="@+id/action_navigation_camera_to_navigation_profile"
            app:destination="@id/navigation_profile" >
            <argument
                android:name="isAdmin"
                app:argType="boolean" />
            <argument
                android:name="Username"
                app:argType="string" />
            <argument
                android:name="mainProfile"
                app:argType="string" />
            <argument
                android:name="from"
                app:argType="string" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_leaderboard"
        android:name="com.example.myapplication.fragments.leaderboard.LeaderboardFragment"
        android:label="@string/title_leaderboard"
        tools:layout="@layout/fragment_leaderboard" >
        <action
            android:id="@+id/action_navigation_leaderboard_to_navigation_profile"
            app:destination="@id/navigation_profile"
            app:launchSingleTop="true"
            app:popUpTo="@id/navigation_profile"
            app:popUpToInclusive="true">
            <argument
                android:name="isAdmin"
                app:argType="boolean" />
            <argument
                android:name="Username"
                app:argType="string" />
            <argument
                android:name="from"
                app:argType="string" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_profile"
        android:name="com.example.myapplication.fragments.profile.ProfileFragment"
        android:label="@string/title_profile"
        tools:layout="@layout/fragment_profile" >
        <action
            android:id="@+id/action_navigation_profile_to_navigation_post"
            app:destination="@id/navigation_post" >
            <argument
                android:name="argQR"
                app:argType="string" />
            <argument
                android:name="argPostUser"
                app:argType="string" />
            <argument
                android:name="argUser"
                app:argType="string" />
            <argument
                android:name="argAdmin"
                app:argType="boolean" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_post"
        android:name="com.example.myapplication.fragments.post.PostFragment"
        tools:layout="@layout/fragment_post"
        />

</navigation>

我知道我可以将导航到全局导航中。我只想让此选项卡首先工作。

I have a profile based app. I have the bottom navigation bar working perfectly. when you search for a user in the search fragment and click on the user, it navigates to the profile fragment. However, I want the bottom navigation to stay on the search menu item label (similar to instagram). How would I go about this? Here is my navigation 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/mobile_navigation"
    app:startDestination="@+id/navigation_profile">

    <fragment
        android:id="@+id/navigation_map"
        android:name="com.example.myapplication.fragments.map.MapFragment"
        android:label="@string/title_map"
        tools:layout="@layout/fragment_map" />

    <fragment
        android:id="@+id/navigation_search"
        android:name="com.example.myapplication.fragments.search.SearchFragment"
        android:label="Search"
        tools:layout="@layout/fragment_search">
        <action
            android:id="@+id/action_navigation_search_to_navigation_profile"
            app:destination="@id/navigation_profile" >
            <argument
                android:name="isAdmin"
                app:argType="boolean" />
            <argument
                android:name="Username"
                app:argType="string" />
            <argument
                android:name="from"
                app:argType="string" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_camera"
        android:name="com.example.myapplication.fragments.camera.CameraFragment"
        android:label="@string/title_camera"
        tools:layout="@layout/fragment_camera">
        <action
            android:id="@+id/action_navigation_camera_to_navigation_profile"
            app:destination="@id/navigation_profile" >
            <argument
                android:name="isAdmin"
                app:argType="boolean" />
            <argument
                android:name="Username"
                app:argType="string" />
            <argument
                android:name="mainProfile"
                app:argType="string" />
            <argument
                android:name="from"
                app:argType="string" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_leaderboard"
        android:name="com.example.myapplication.fragments.leaderboard.LeaderboardFragment"
        android:label="@string/title_leaderboard"
        tools:layout="@layout/fragment_leaderboard" >
        <action
            android:id="@+id/action_navigation_leaderboard_to_navigation_profile"
            app:destination="@id/navigation_profile"
            app:launchSingleTop="true"
            app:popUpTo="@id/navigation_profile"
            app:popUpToInclusive="true">
            <argument
                android:name="isAdmin"
                app:argType="boolean" />
            <argument
                android:name="Username"
                app:argType="string" />
            <argument
                android:name="from"
                app:argType="string" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_profile"
        android:name="com.example.myapplication.fragments.profile.ProfileFragment"
        android:label="@string/title_profile"
        tools:layout="@layout/fragment_profile" >
        <action
            android:id="@+id/action_navigation_profile_to_navigation_post"
            app:destination="@id/navigation_post" >
            <argument
                android:name="argQR"
                app:argType="string" />
            <argument
                android:name="argPostUser"
                app:argType="string" />
            <argument
                android:name="argUser"
                app:argType="string" />
            <argument
                android:name="argAdmin"
                app:argType="boolean" />
        </action>
    </fragment>

    <fragment
        android:id="@+id/navigation_post"
        android:name="com.example.myapplication.fragments.post.PostFragment"
        tools:layout="@layout/fragment_post"
        />

</navigation>

I know I could make navigating to the profile into a global navigation. I just want to get this tab selected item working first.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文