Навигация по панели инструментов Android с помощью кнопки "Закрыть" и "Стрелка"
Я хочу сделать навигацию по панели инструментов, как это.
Когда я создаю свою деятельность, я раздуваю фрагмент и рисую кнопку закрытия на панели инструментов. Но, если пользователь открывает другой фрагмент, показывает стрелку назад... Но на этом источнике, он показывает только кнопку закрытия.
Вот мой 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);
}
2 ответа
Попробуйте в меню, как это, но тем самым вы приблизитесь к меню
<?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"/>
Если панель инструментов находится в макете активности. создайте метод установки для значка в действии и вызовите его во фрагменте, чтобы изменить его.
void setIcon(){
..
}
onBackPressed(){
if(fragment visible) getsupportfragmentmanger.begintranscation().close
else super.onbackprsesed
}