Это мой класс navigation.class, который также является моим основным классом. Он имеет внутри моего навигационного ящика и все фрагменты (фрагменты)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation33);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
toolbar.setNavigationIcon(R.drawable.ic_flash);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
cooLayout=(ConstraintLayout)findViewById(R.id.cooLayout);
FloatingActionButton myFab = (FloatingActionButton) findViewById(R.id.fabId);
myFab.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(navigation33.this,Post.class));
}
});
auth = FirebaseAuth.getInstance();
// db = FirebaseFirestore.getInstance();
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
authListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user == null) {
startActivity(new Intent(navigation33.this, login_user.class));
finish();
}
}
};
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
setTitle("Appx");
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
fragmentManager = getSupportFragmentManager();
myFragmentTransaction = fragmentManager.beginTransaction();
myFragmentTransaction.replace(R.id.cooLayout, new AllFragments()).commit();
}
У меня есть ответы здесь, где простое добавление getSupportActionBar().setDisplayHomeAsUpEnabled(true); решает их проблему, но не мою.
<android.support.design.widget.AppBarLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:theme = "@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id = "@+id/toolbar"
android:layout_width = "match_parent"
android:layout_height = "?attr/actionBarSize"
android:background = "@color/orange"
app:popupTheme = "@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include
layout = "@layout/content_navigation33" />
<android.support.design.widget.FloatingActionButton
android:id = "@+id/fabId"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "bottom|end"
android:layout_margin = "@dimen/fab_margin"
app:backgroundTint = "@color/colorPrimaryDark"
app:srcCompat = "@drawable/ic_lightbulb" />
Разве это не должно быть по умолчанию, чего мне здесь не хватает?
Заранее спасибо!
Как это
Как я хочу, чтобы это было

Что ??? показывает панель инструментов, а обратная btn - нет, прежде чем давать -1, прочтите вопрос. @RanjithKumar
Здравствуйте, я не даю -1 .. Я просто хочу ответить на ваш вопрос .. Если вы все еще не верите мне, я докажу это своим голосом против. (Один человек может голосовать только один раз). Перед подачей жалобы убедитесь, что она правильная или неправильная.
привет @someguy, твоя кнопка "Назад" не отображается? Или на нее просто нельзя нажимать?
@LeviAlbuquerque благодарит вас, он вообще не отображается. Он открывается так же, как вкладки смахивания, а это означает, что значок панели не меняется
Понятно, не могли бы вы опубликовать activity_navigation33.xml?
также какова ваша основная деятельность? AppCompat? ActionBarActivity?
@LeviAlbuquerque только что добавил навигацию на панель моего приложения
как насчет вашей деятельности? AppCompact или ActionBar?
@LeviAlbuquerque - это мое основное занятие, остальные - части areonNavigationItemSelected, onBackPressed. Обычно я заменяю coolayouT (навигация по контенту) фрагментами.
Я понял, я хотел знать, какой класс расширяет ваша основная деятельность, AppCompatActivity или ActionBarActivity?
AppCompatActivity @LeviAlbuquerque
Попробуйте установить значок для своей панели инструментов.
toolbar.setNavigationIcon(R.drawable.ic_back_arrow);
toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onSupportNavigateUp();
}
});
Обновлено:
Я тестировал его здесь, и если вы добавите, можете управлять отображением или скрытием стрелки назад, вызвав это на своем переключаемом объекте:
toggle.setDrawerIndicatorEnabled(false);
Затем снова обновить панель инструментов
public void onBackPressed() {
...
toggle.setDrawerIndicatorEnabled(true);
Итак, если вы сделаете это:
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
toggle.setDrawerIndicatorEnabled(false);
Не забудьте добавить:
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
Это работает только когда:
myFragmentTransaction.addToBackStack(null);
Вы получите не кнопку гамбургера, а стрелку назад. Поэтому вам нужно сделать свой toggle переменной-членом, чтобы вы могли получить к ней глобальный доступ и контролировать, когда вы хотите показать или скрыть стрелку назад.
это должно быть внутри моего основного класса
да, сразу после getSupportActionBar (). setHomeButtonEnabled (true);
Я вижу на картинке, что у вас есть кнопка гамбургера вместо стрелки назад, но вы не можете иметь обе одновременно. Кнопка гамбургера превращается в стрелку при нажатии на нее?
Нет, вот и проблема при переходе к пользовательскому фрагменту кнопка вообще не меняется. Я хочу, чтобы она изменилась, как на картинке в твиттере.
он делает то, что я хотел, но когда я нажимаю на него, он не возвращает меня к домашнему фрагменту
Я знаю, я указал вам на ответ, чтобы вы могли решить его сами :)
toggle.setToolbarNavigationClickListener (new View.OnClickListener () {@Override public void onClick (View v) {onBackPressed ();}}); ... это выводит меня из приложения
Для того, что я видел в вашем коде, вы захотите заменить фрагмент вместо вызова onBackPressed ()
Узнал, как вернуться назад единственное, что сейчас стоит обновить code toolbar.i put the if (id == R.id.nav_profile) { fragment = new UserFragment(); toggle.setDrawerIndicatorEnabled(false);
только вариант назад не показывать ааа? или панель инструментов также не отображается а?