我创建了一个主活动,里面有一个片段容器,我在导航菜单选项选择中替换了很多片段。它的工作正常,但问题是:
layout_main.xml
for (i in 1:length(file_list)){
assign(file_list[i],
read.csv(paste(folder, file_list[i], sep=''))
)}
MainActivity.java
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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/main_activity_page"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/pageBackgroundColor"
tools:context="co.sd.app.MainActivity">
<RelativeLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/side_nav_drawer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:padding="0sp"
app:menu="@menu/side_navigation_menu" />
</android.support.v4.widget.DrawerLayout>
请在此建议我。
答案 0 :(得分:3)
这将解决您的第二个问题,当您向容器中添加片段时,它们将添加到堆栈中,
if (getSupportFragmentManager().getBackStackEntryCount() == 1) {
finish();
}
else {
super.onBackPressed();
}
所以当堆栈条目数为1时,你必须完成活动。
对于第一个问题,你必须使用“pop back stack”再次添加相同的片段时使用:getSupportFragmentManager().popBackStack();