Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个导航抽屉,想打开另一个孤立的片段_Java_Android_Android Fragments_Fragment_Navigation Drawer - Fatal编程技术网

Java 我有一个导航抽屉,想打开另一个孤立的片段

Java 我有一个导航抽屉,想打开另一个孤立的片段,java,android,android-fragments,fragment,navigation-drawer,Java,Android,Android Fragments,Fragment,Navigation Drawer,我有一个导航抽屉,当我点击一个按钮时,我想转到另一个片段,在那里我无法访问导航抽屉和其他任何东西。我只想在左上角有一个黑色箭头,返回导航抽屉,里面有所有的碎片。 我尝试了一些东西,但没有像我希望的那样正常工作,导航器继续访问,并看到机器人布局一个比另一个 主碎片控制器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

我有一个导航抽屉,当我点击一个按钮时,我想转到另一个片段,在那里我无法访问导航抽屉和其他任何东西。我只想在左上角有一个黑色箭头,返回导航抽屉,里面有所有的碎片。 我尝试了一些东西,但没有像我希望的那样正常工作,导航器继续访问,并看到机器人布局一个比另一个

主碎片控制器

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = findViewById(R.id.toolbar);
        DrawerLayout drawerLayout=findViewById(R.id.drawer);
        NavigationView navigationView=findViewById(R.id.nav_view);

        setSupportActionBar(toolbar);

        appBarConfiguration= new AppBarConfiguration.Builder(R.id.nav_home,
                R.id.nav_user_data,R.id.nav_join_group,
                R.id.nav_user_groups,R.id.nav_search_documents)
                .setDrawerLayout(drawerLayout).build();

        navController = Navigation
                .findNavController(this,R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this,navController,appBarConfiguration);
        NavigationUI.setupWithNavController(navigationView,navController);



    }

    @Override
    public boolean onSupportNavigateUp() {
        return NavigationUI.navigateUp(navController,appBarConfiguration)
                || super.onSupportNavigateUp();
    }

我正在用ActionBar上的一个botton进行尝试,当我单击它时,它应该转到我的新片段(使用一个通用应用程序后退,但有一个后退按钮)

你只需像其他人一样在
navigation.xml
文件中指定你的操作即可

它将自行更改汉堡图标,因为您在以下两行代码中将导航控制器与NavDrawer同步:

NavigationUI.setupActionBarWithNavController(this,navController,appBarConfiguration);
NavigationUI.setupWithNavController(navigationView,navController);

我们需要在navigation.xml(定义与片段和布局相关联的片段的文件)中添加一个片段,作为我们要去的片段。在片段中添加一个具有唯一id的操作,以及我们要去的地方。
对不起,我知道有点混乱。

导航
我们从那里开始

<fragment
        android:id="@+id/nav_user_data"
        android:name="com.example.androidapplication_reto2.project.activities.navigationfragments.SeeAndModifyUserDataFragment"
        android:label="User Data"
        tools:layout="@layout/fragment_see_and_modify_user_data"
        >
        <action
            android:id="@+id/action_nav_user_data_to_nav_modify_data"
            app:destination="@+id/nav_modify_data" />
    </fragment>`

这是为了将导航添加到我菜单的其他项,不是吗?但我不会在导航视图中添加其他项目。我希望当我单击应用程序的一个特定按钮时,转到我无法访问导航视图的其他片段,如果我单击后退箭头,则返回到我的最后一个片段。如果使用导航库,则无所谓
<fragment
        android:id="@+id/nav_modify_data"
        android:name="com.example.androidapplication_reto2.project.activities.navigationfragments.ModifyUserDataFragment"
        android:label="Modify User Data"
        tools:layout="@layout/fragment_modify_user_data"
        />
Navigation.findNavController(getView()).navigate(R.id.action_nav_user_data_to_nav_modify_data);