#java #android #android-studio #label #bottomnavigationview
#java #Android #android-studio #ярлык #bottomnavigationview
Вопрос:
У меня есть нижняя панель навигации в моем проекте Android. У меня в нем 4 метки, и только первая из них помечается как «Примечания». Для этих меток я сохранил «Намерение» для каждого из них.
У меня есть 4 макета:
- Примечания к навигации
- Навигационные заметки
- NavigationPremium
- Настройки навигации
Когда пользователь открывает приложение, он переходит к макету NavigationNotes, но когда пользователь выбирает Notebooks, NavigationNotebooks
он открывается, но метка Notes по-прежнему выбрана.
Всякий раз, когда я выбираю метку, текст этой метки также должен отображаться, но этого не произойдет.
Код для bottom_nav_menu.xml
:
<?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/action_notes"
android:enabled="true"
android:icon="@drawable/bottom_notes"
android:title="Notes"
app:showAsAction="ifRoom" />
<item
android:id="@ id/action_notebooks"
android:enabled="true"
android:icon="@drawable/bottom_notebook"
android:title="Notebooks"
app:showAsAction="ifRoom" />
<item
android:id="@ id/action_premium"
android:enabled="true"
android:icon="@drawable/bottom_premium"
android:title="Premium"
app:showAsAction="ifRoom" />
<item
android:id="@ id/action_settings"
android:enabled="true"
android:icon="@drawable/bottom_settings"
android:title="Settings"
app:showAsAction="ifRoom" />
</menu>
Код для моего NavigationNotes.java
:
package com.Notely.Notes;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.Toast;
import com.Notely.SplashScreenandAccounts.R;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.bottomnavigation.LabelVisibilityMode;
public class NavigationNotes extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.navigation_notes);
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new
BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_notes:
Intent navigationNotes = new Intent(NavigationNotes.this, NavigationNotes.class);
startActivity(navigationNotes);
break;
case R.id.action_notebooks:
Intent navigationNotebooks = new Intent(NavigationNotes.this,
NavigationNotebooks.class);
startActivity(navigationNotebooks);
break;
case R.id.action_premium:
Intent navigationPremium = new Intent(NavigationNotes.this,
NavigationPremium.class);
startActivity(navigationPremium);
break;
case R.id.action_settings:
Intent navigationSettings = new Intent(NavigationNotes.this,
NavigationSettings.class);
startActivity(navigationSettings);
break;
}
return true;
}
});
}
}
Ответ №1:
Я вижу, что вы используете несколько действий. Я предлагаю вам использовать компоненты навигации. То, что вы хотите сделать, становится намного проще. Проверьте документы: https://developer.android.com/guide/navigation/navigation-ui
Ответ №2:
bottomNavigationView.enableAnimation(boolean);
bottomNavigationView.enableItemShiftingMode(boolean);
bottomNavigationView.enableShiftingMode(boolean);
bottomNavigationView.enableItemShiftingMode(boolean);
bottomNavigationView.enableShiftingMode(boolean);
У вас должны быть похожие функции!