我有以下问题:
我知道如何设置工具栏来显示后退按钮图标而不是汉堡按钮图标.
由此:

对此:
使用: getSupportActionBar().setDisplayHomeAsUpEnabled(true);
现在,我想做反向动作,我想从后退按钮图标转到汉堡图标:
到这里:
我怎样才能做到这一点?
更新:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
}
private void enableViews(boolean enable) {
if(enable) {
// Enables back button icon
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} else {
// TODO: Enables burger icon
}
}
Run Code Online (Sandbox Code Playgroud) android back-button android-actionbar navigation-drawer android-toolbar
我正在使用内置的导航抽屉来运行我的应用程序.我无法弄清楚如何处理后退按钮.当它被按下时,我希望它再次加载第一个片段.片段1.
因此,当应用程序启动时,您会看到Fragment1已启动.然后,他们可以点击片段2-5转到其他页面.在所有这些页面中,我希望使用后退按钮将用户带回Fragment1.用户应该能够通过后退按钮退出应用程序的唯一位置是Fragment1.
所有这些都是由FragmentActivity处理的,我试着弄乱那里的后门按钮.然而,我一直收到一个强制关闭错误:
(01-11 14:09:33.114: E/AndroidRuntime(8292): android.view.InflateException: Binary XML file line #7: Error inflating class fragment)
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
我确保将片段添加到后台堆栈中,如下所示:
fm.beginTransaction().replace(R.id.main, newFragment).addToBackStack("fragBack").commit();
Run Code Online (Sandbox Code Playgroud)
返回键:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().findFragmentByTag("fragBack") != null) {
}
else {
super.onBackPressed();
return;
}
if (getSupportFragmentManager().getBackStackEntryCount() != 0) {
Toast.makeText(getApplicationContext(), "Test", Toast.LENGTH_LONG).show();
Fragment frag = getSupportFragmentManager().findFragmentByTag("fragBack");
FragmentTransaction transac = getSupportFragmentManager().beginTransaction().remove(frag);
transac.commit();
}
}
Run Code Online (Sandbox Code Playgroud)
有谁知道我需要做什么?我是否需要在每个片段中调用onBackPressed(如果可能的话),而不是控制抽屉的FragmentActivity?在我过去的应用程序中,无论用户使用哪个片段,我都可以使用后退按钮关闭应用程序但是我现在正在制作的那个片段我希望后退按钮返回到Fragment1.
非常感谢一些帮助,谢谢.
onItemClick
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Fragment newFragment = new MapsPage();
FragmentManager fm = getSupportFragmentManager(); …Run Code Online (Sandbox Code Playgroud) android android-fragments android-fragmentactivity navigation-drawer