BottomNavigationView не появляется после запуска в эмуляторе - PullRequest
0 голосов
/ 11 марта 2020

мой BottomNavigationView появляется в предварительном просмотре студии android, но когда я запускаю его в эмуляторе, он не появляется, поэтому в эмуляторе появляется только фрагмент, и программа не выдает мне никакой ошибки, поэтому я попытался переключить макет домашней страницы, и он также не появляется!

и вот мой код

в Home_activity xml

public class HomeActivity extends AppCompatActivity {

@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
    super.onCreate(savedInstanceState, persistentState);
    setContentView(R.layout.activity_home);

    BottomNavigationView bottomNavigationView =findViewById(R.id.nav_view);
    bottomNavigationView.setOnNavigationItemSelectedListener(navlistener);


}

private BottomNavigationView.OnNavigationItemSelectedListener navlistener = new BottomNavigationView.OnNavigationItemSelectedListener(){

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        Fragment selectedFragment =null;

        switch (menuItem.getItemId()){

            case R.id.navigation_home:
                selectedFragment=new Home_fragment();
                break;

                case R.id.navigation_dashboard:
                selectedFragment=new Dashboard_fragment();
                break;



            case R.id.navigation_notifications:
                selectedFragment=new Notificatons_fragment();
                break;
        }

        //to show them

        getSupportFragmentManager().beginTransaction().replace(R.id.nav_host_fragment,selectedFragment).commit();

        return true;
    }
};

}

в xml домашней страницы макета

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?attr/actionBarSize">

  <fragment
      android:id="@+id/nav_host_fragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_above="@id/nav_view"/>

    <com.google.android.material.bottomnavigation.BottomNavigationView
      android:id="@+id/nav_view"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      app:menu="@menu/bottom_nav_menu"

      />

</RelativeLayout>

1 Ответ

0 голосов
/ 11 марта 2020

Добавить библиотеку в файл Gradle

dependencies {
   implementation 'com.google.android.material:material:1.1.0'
}

Xml файл без тега фрагмента. фрагмент дает ошибку на моей стороне.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="?attr/actionBarSize">


    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_alignParentBottom="true"
        app:menu="@menu/bottom_nav_menu"

        />

</RelativeLayout>

bottom_nav_menu. xml файл в папке меню в res

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/home"
        android:icon="@android:drawable/arrow_down_float"
        android:title="home" />
    <item
        android:id="@+id/id1"
        android:icon="@android:drawable/btn_plus"
        android:title="deeplink" />
</menu>

You можете изменить ваши пользовательские значки в меню. Попробуй это. Надеюсь, может решить вашу проблему. Я проверил это на эмуляторе Android Q. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...