com.google. android .material.bottomnavigation.BottomNavigationView не отображает контент - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь сделать нижнюю навигацию, используя android studio, но она не будет отображаться. если я добавлю к нему высоту, я смогу видеть цвет BG, но содержимое пунктов меню по-прежнему отсутствует

РЕДАКТИРОВАТЬ: оно обрабатывает меню 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"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".HomeScreen">



    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:menu="@menu/menu"
    android:layout_alignParentBottom="true"
        android:background="@color/btnSignUp"/>
    </RelativeLayout>

вот мой пункт меню, он расположен в папке меню

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="Home"
        />

    <item
        android:id="@+id/nav_search"
        android:icon="@drawable/ic_search_black_24dp"
        android:title="Search"
        />

    <item
        android:id="@+id/nav_orders"
        android:icon="@drawable/ic_receipt_black_24dp"
        android:title="Orders"
        />

    <item
        android:id="@+id/nav_account"
        android:icon="@drawable/ic_person_black_24dp"
        android:title="My Account"
        />

</menu>

и, наконец, мои зависимости:

implementation 'com.github.jd-alexander:android-flat-button:1.1'

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.firebase:firebase-auth:19.2.0'
    implementation 'com.google.firebase:firebase-firestore:21.4.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-analytics:17.2.2'
    implementation 'com.google.firebase:firebase-database:19.2.1'
    implementation 'com.rengwuxian.materialedittext:library:2.1.4'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.squareup.picasso:picasso:2.5.2'
    implementation 'com.google.android.material:material:1.1.0'

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Я нашел ответ здесь:

Проблема рендеринга в Android Studio

кажется, что это проблема рендеринга с темой, и ее пришлось изменить на appcompat.

спасибо

0 голосов
/ 27 февраля 2020

Ваша активность работает? Мне не хватает кода для onCreate ()!

Пожалуйста, добавьте идентификатор для BottomNavigationView, например:

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="?android:attr/windowBackground"
    app:menu="@menu/navigation" />

В вашей активности должен быть такой код. Это там?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    BottomNavigationView navigation = findViewById(R.id.navigation);
    navigation.setOnNavigationItemSelectedListener( mOnNavigationItemSelectedListener);
}
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
             // ... implement code here
        }
        return false;
    }

};

Редактировать: значки (например, ic_home_black_24dp, см. Рисунок) находятся в папке для рисования и отображаются в Android Studio при отображении меню. xml? enter image description here

...