我有一个导航抽屉,想打开另一个孤立的片段
I have a Navigation Drawer and want open another isolated fragment
我有一个导航抽屉,当我单击一个按钮时,我想转到其他片段,在那里我无法访问导航抽屉和其他任何东西。我只想在左上角有一个黑色箭头返回并 return 到包含所有片段的导航抽屉。
我尝试了一些方法,但没有像我希望的那样正常工作导航器继续可访问并看到机器人布局一个接一个。
主要碎片控制器
@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 上使用一个按钮,当我点击它时应该转到我的新片段(带有一个通用应用程序后退但有一个后退按钮)
您只需像其他人一样在 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"
/>
使用我们在 origen 片段中定义的操作。
起源碎片
在 Fragment 中,当您单击一个按钮时,就会发生这种情况。
Navigation.findNavController(getView()).navigate(R.id.action_nav_user_data_to_nav_modify_data);
我有一个导航抽屉,当我单击一个按钮时,我想转到其他片段,在那里我无法访问导航抽屉和其他任何东西。我只想在左上角有一个黑色箭头返回并 return 到包含所有片段的导航抽屉。 我尝试了一些方法,但没有像我希望的那样正常工作导航器继续可访问并看到机器人布局一个接一个。
主要碎片控制器
@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 上使用一个按钮,当我点击它时应该转到我的新片段(带有一个通用应用程序后退但有一个后退按钮)
您只需像其他人一样在 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"
/>
使用我们在 origen 片段中定义的操作。
起源碎片
在 Fragment 中,当您单击一个按钮时,就会发生这种情况。
Navigation.findNavController(getView()).navigate(R.id.action_nav_user_data_to_nav_modify_data);