Ответ 1
Если вы используете android.support.v7.app.ActionBarDrawerToggle
, он автоматически анимируется.
Я заметил, что с более новыми обновлениями Gmail для Android, когда вы нажимаете на одну из ваших писем, открывается новое действие (я предполагаю, что это не фрагмент из-за обратной стрелки).
Однако новая стрелка назад не отображается, как и по умолчанию. Меню гамбургера из основного интерфейса вращается в стрелку в анимации (см. Видео здесь: http://material-design.storage.googleapis.com/publish/material_v_3/material_ext_publish/0B3T7oTWa3HiFbFRfT196SWRyS2s/animation_delightfuldetails_wellcrafted.webm)
(Примечание: вновь открытое письмо МОЖЕТ быть фрагментом, потому что панель инструментов не изменяется, а анимация нового действия по умолчанию не воспроизводится. Я не уверен, какой она есть.)
Уточнение: я знаю, как заставить меню гамбургера превращаться в стрелку при нажатии/при открытии ящика навигации. Фактически, я целенаправленно отключил указанную анимацию, потому что она идет против спецификации. (см. эту статью: http://www.androidpolice.com/2014/10/30/google-turns-design-inconsistency-ten-latest-round-navigation-drawers/). Однако я хочу знать , если такая же анимация возможна при создании нового фрагмента/активности, в зависимости от того, какой Gmail, вероятно, использует.
Если вы используете android.support.v7.app.ActionBarDrawerToggle
, он автоматически анимируется.
Это слишком поздно, но я поставил его здесь для предстоящих вопросов. Приложение Gmail открывает электронную почту в фрагменте. Потому что вы все еще можете использовать меню гамбургеров на этой странице. Замена значка меню гамбургера на кнопку "назад" Я использую этот код, и он отлично работает.
public void setupToolbarNavigation() {
toggle.setDrawerIndicatorEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
reverseToolbar();
}
});
}
public void reverseToolbar() {
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
getSupportActionBar().setHomeButtonEnabled(false);
toggle.setDrawerIndicatorEnabled(true);
toggle.setToolbarNavigationClickListener(null);
}
toggle - это экземпляр ActionBarDrawerToggle, который вы можете инициировать с помощью этого кода в своей деятельности.
toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
reverseToolbar измените значок панели инструментов на значок значка гамбургера при нажатии на пользователя. Выполните этот метод в своей деятельности и замените значок в фрагменте, поместите этот код в свой фрагмент. ((YourActivity) getActivity()). SetupToolbarNavigation