我有一个导航抽屉,当我单击一个按钮时,我想转到无法访问导航抽屉和其他任何东西的其他片段。我只想在左上角有一个黑色箭头,以返回并返回所有片段的导航抽屉。 我尝试了一些操作,但无法正常运行,就像我希望导航器可以继续访问并看到机器人布局一样。
主要片段控制器
@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,当我单击它时,它应该转到我的新片段(后退一个通用应用程序,但后退一个按钮)
答案 0 :(得分:0)
您只需像其他文件一样在navigation.xml
文件中指定您的操作即可。
这将自动更改汉堡包图标,因为您在这两行代码中将导航控制器与NavDrawer同步:
NavigationUI.setupActionBarWithNavController(this,navController,appBarConfiguration);
NavigationUI.setupWithNavController(navigationView,navController);
答案 1 :(得分:-1)
我们需要在我们的navigation.xml(用于定义与Fragment和布局相关联的片段的文件)中添加一个片段。在其中添加一个具有唯一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);