[英]Back Navigation does not restore the last fragment
我對back navigation
有問題,因為它不能還原最后一個片段。 所有活動都是使用Android Studio的navigation_drawer( ActivityA
)和scroll_activity( ActivityB
)模板進行的AppCompatActivity
ActivityA
顯示fragment_1
(確定) fragment_1
替換為fragment_2
(確定) fragment_2
的按鈕來啟動ActivityB
(確定)
ActivityB
( GOOD ) ActivityB
的back
導航,則它將顯示fragment_1
而不是fragment_2
(不好) 我嘗試過的是:
onResume()
再次呈現,但是它不起作用。 有什么幫助嗎? 謝謝
嗨,阮(Nguyen),我創建了相同的場景,但是從activityB返回后,在fragment_2的頂部
我的代碼`公共類FirstActivity擴展了ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment1()).commit();
}
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment1 extends Fragment {
public PlaceholderFragment1() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_first, container, false);
Button button = (Button) rootView.findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment2()).commit();
}
});
return rootView;
}
}
public static class PlaceholderFragment2 extends Fragment {
public PlaceholderFragment2() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_second, container, false);
Button button = (Button) rootView.findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), Secondctivity.class);
startActivity(intent);
}
});
return rootView;
}
}
}`
這是我的清單文件
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".FirstActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Secondctivity"
android:label="@string/title_activity_secondctivity" >
</activity>
</application>
我忘記了一個簡單的解決方案是“ 活動啟動模式” 。 我修改了清單文件中的活動,這樣一切正常。
<activity
android:name=".ActivityA"
android:launchMode="singleTask"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
問題是back navigation
按鈕試圖再次創建ActivityA
(可能是由於滾動活動模板行為)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.