我想像这样制作一个工具栏导航。
当我创建活动时,我会膨胀片段并在工具栏上绘制一个关闭按钮。但是,如果用户打开另一个片段,则显示后退箭头......但是在此源上,它只显示关闭按钮。
这是我的onCreate()
方法。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_initial);
setSupportActionBar(mToolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white);
}
getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
int stackHeight = getSupportFragmentManager().getBackStackEntryCount();
if (stackHeight > 0) {
if (getSupportActionBar() != null) {
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
} else {
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white);
}
}
}
});
if (findViewById(R.id.container_initial) != null) {
if (savedInstanceState != null) {
return;
}
ActivityUtils.addFragmentToActivity(getSupportFragmentManager(), new LoginFragment(), R.id.container_initial);
}
}
如果我删除此代码,请使用后退箭头按钮的一部分,但不要显示关闭按钮...
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white);
}
答案 0 :(得分:0)
在这样的菜单中尝试,但是这样就可以取代菜单了
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/Updatetimetable"
android:orderInCategory="100"
android:title="Update"
android:icon="@drawable/updatepopup"
app:showAsAction="ifRoom"/>
<item
android:id="@+id/viewalert"
android:orderInCategory="200"
android:title="View alert"
android:icon="@drawable/alertcards"
app:showAsAction="ifRoom"/>
答案 1 :(得分:0)
如果工具栏位于活动布局中。为活动中的图标创建一个setter方法&amp;在片段中调用它来改变它。
void setIcon(){
..
}
onBackPressed(){
if(fragment visible) getsupportfragmentmanger.begintranscation().close
else super.onbackprsesed
}