Не удается увидеть BottomBar с ListView

У меня есть этот код:

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipeContainer"
    xmlns:design="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:weightSum="1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:theme="@style/Theme.AppCompat"
    tools:context="com.tag.instagramdemo.example.MainActivity"
    android:background="@drawable/background1">

    <ListView

        android:id="@+id/lvRelationShip"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    </ListView>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomBar"
android:layout_width="match_parent"
android:layout_height="64dp"
android:layout_gravity="bottom"
android:background="#ffffff"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:itemIconTint="@color/text"
android:enabled="false"
app:itemTextColor="@color/text"
android:animateLayoutChanges="true"
android:clickable="false"
design:menu = "@menu/menu_main"
android:contextClickable="false"/>    

Когда я использую этот макет. Я не вижу нижнюю панель и вижу только просмотр списка. Вверху есть список и больше ничего.

2 ответа

  1. Если вы не добавили родительский макет, добавьте родительский макет. Заключите представление списка в swiperefreshlayout и заключите в нижнюю строку и swiperefreshlayout в родительский макет (например, относительный макет)

    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:design="http://schemas.android.com/apk/res-auto"
        ....>
        <android.support.v4.widget.SwipeRefreshLayout
            android:id="@+id/swipeContainer"
         ...>
    
             <ListView
                android:id=... >
             </ListView>
         </android.support.v4.widget.SwipeRefreshLayout>
    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottomBar"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:layout_gravity="bottom"
        android:background="#ffffff"
        android:enabled="false"
        app:itemIconTint="@color/colorAccent"
        app:itemTextColor="@color/colorPrimary"
        android:animateLayoutChanges="true"
        android:clickable="false"
        android:contextClickable="false"
        android:layout_below="@id/swipeContainer"
        app:menu = "@menu/menu_main"/>
    

  2. Также используйте

Приложение: меню

вместо design:menu как предложено в https://medium.com/@chornenkyy.v/first-look-at-bottomnavigationview-from-android-design-library-8244de85b953

BottomNavigationView имеет метод inflateMenu(menu), и если вы передадите ему файл ресурсов меню, он будет работать. Сразу после того, как идея с неправильным пространством имен возникла у меня в голове, я попытался заменить "дизайн" пространством имен "приложение", которое автоматически разрешает атрибуты. И это на самом деле работает. Та же история для других трех атрибутов, которые существуют специально для этого представления: itemBackground, itemIconTint, itemTextColor.

Я пытался решить вашу проблему. Я надеюсь, что это будет работать для вас:) Пожалуйста, посмотрите и попробовал

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:design="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipeContainer"
        android:layout_above="@+id/bottomBar"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:theme="@style/Theme.AppCompat"
        android:weightSum="1">

        <ListView

            android:id="@+id/lvRelationShip"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

        </ListView>

    </android.support.v4.widget.SwipeRefreshLayout>

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/bottomBar"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:animateLayoutChanges="true"
        android:background="#ffffff"
        android:clickable="false"
        android:contextClickable="false"
        android:enabled="false"
        design:menu="@menu/navigation" />
</RelativeLayout>
Другие вопросы по тегам