how*_*ttl 10 android android-appcompat android-fragments
我正在使用库22.1版中AppCompatActivity引入的新功能AppCompat.
当我扩展此Activity时,硬件后退按钮不再弹出我的Fragments的后堆栈,而是关闭Activity.
以下是我在活动中更改片段的方式:
public void changeFragment(Fragment f) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_holder, f);
ft.addToBackStack(null);
ft.commit();
}
Run Code Online (Sandbox Code Playgroud)
如果我改变MainActivity extends AppCompatActivity对MainActivity extends Activity问题是否会消失,我能够通过我的片段倒退.
更改呼叫getFragmentManager()到getSupportFragmentManager()运行Android <5.0不失材料的主题,这是贯彻的主要原因在设备的结果AppCompatActivity摆在首位.
我的清单中引用的样式 <application android:theme="@style/AppTheme">
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/primary_material_light</item>
<item name="colorPrimaryDark">@color/primary_dark_material_light</item>
<item name="colorAccent">@color/accent_material_light</item>
</style>
Run Code Online (Sandbox Code Playgroud)
how*_*ttl 10
我可以通过覆盖onBackPressed()我的Activity 来解决这个问题:
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人对使用这个额外步骤的原因有任何了解AppCompatActivity我会有兴趣知道.
| 归档时间: |
|
| 查看次数: |
4438 次 |
| 最近记录: |