Так что моя ситуация в том, что я правильно реализовал навигационный ящик (так сказать, он отображается правильно и вызывает метод (странным образом, но срабатывает)), но он действует странно, и я не знаю, что ещеДелай, но спрашивай, ты пишешь!
Как только я начал привязывать методы к пунктам меню (параметрам) ящика, я начал замечать странное поведение.Позвольте мне сначала объяснить словами:
Пусть это будет фиктивное меню:
Хорошо, вы видитепорядок идет: домой - история - избранное - выход из системы
Пока я реализовал историю и избранное, вот поведение, которое я получаю:
- Если я вызову историю, это откроет действиеправильно и отображать данные
- Если я позвоню в избранное, я открою ИСТОРИЮ ПЕРВЫМ, затем ЛЮБИМЫЙ ВТОРОЙ (я вижу это, потому что, когда я нажимаю назад, он закрывает избранное, открывает историю)
- Я добавилфиктивная активность в качестве третьей опции меню (не отображается на рис.), и я получаю то же поведение, но на этот раз она открывает Историю - Избранное - Пустышка, если я нажимаю на фиктивную активность.
Еще одна вещь передопубликовать код, как я это реализовал.Давайте возьмем 2 моих действия и приведем пример в реальном времени (все в одном цикле).1) С домашней страницы я пытаюсь использовать ящик и вызывать историю / фаворит, он работает отлично, я вхожу в поиск, я пытаюсь использовать совершенство истории / фаворита выдвижного ящика, я нажимаю назад, чтобы вернуться к основному виду деятельности (домой).история / избранное и puuf это больше не работает ... есть идеи, если это связано или просто отдельная проблема для решения?
Реализация:
final NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
// set item as selected to persist highlight
menuItem.setChecked(true);
// close drawer when item is tapped
switch (menuItem.getItemId()) {
case R.id.nav_home: {
if (checkInternetConnection(getApplicationContext())) {
Log.i(LOG_TAG, "PROVJERA NETA POVEZAN");
start_loader();
} else {
mEmptyStateTextView.setText("Cannot connect to network, please check your network status and try again.");
// Clear the adapter of previous earthquake data
}
}
case R.id.nav_history: {
pozoviHistory(null);
}
case R.id.nav_favourite: {
pozoviFavorites();
}
}
mDrawerLayout.closeDrawers();
// Add code here to update the UI based on the item selected
// For example, swap UI fragments here
return true;
}
}
);
mDrawerLayout.addDrawerListener(
new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// Respond when the drawer's position changes
}
@Override
public void onDrawerOpened(View drawerView) {
// Respond when the drawer is opened
}
@Override
public void onDrawerClosed(View drawerView) {
// Respond when the drawer is closed
navigationView.getMenu().getItem(0).setChecked(true);
}
@Override
public void onDrawerStateChanged(int newState) {
// Respond when the drawer motion state changes
}
}
);
****** РЕДАКТИРОВАТЬ ********
Хорошо, ответьте ниже, добавив разрыв;Для каждого случая решается вопрос об открытии всего.Мне удалось найти больше симптомов, заставляющих ящик действовать глупо.
Итак, действие, которое я делаю, заставляет ящик действовать глупо: - У меня внутри активности поток, который выполняет http-запрос и запускаетсямедиа-плейер.- Как только нить закончена через прослушиватель, который я добавил, я начинаю воспроизведение медиапроигрывателя - Как только он инициализируется, я надуваю свой макет неким макетом, который представляет медиапроигрыватель (может ли это быть проблемой создания заглушек?)-влево (для закрытия) не работает, но нажатие за пределами ящика (на макете активности) обычно закрывает его
Вот как я раздуваю:
DrawerLayout myLayout = (DrawerLayout) findViewById(R.id.cili_test);
View itemInfo1 = getLayoutInflater().inflate(R.layout.player2, myLayout, true);