2017-01-24 5 views
7

Итак, support V25. У нас есть новый компонент под названием Bottom navigation.Как установить высоту на нижнюю навигацию

Следуйте инструкциям Дизайн, Нижняя навигация elevation-х должны быть 8dp (https://material.io/guidelines/components/bottom-navigation.html#bottom-navigation-specs)

Но я не могу установить elevation к нему.

Любое предложение, пример будет оценен. Спасибо!

UPDATE XML КОД

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/bottom_navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:elevation="8dp" 
    app:elevation="8dp" 
    app:itemBackground="@color/colorPrimary" 
    app:itemIconTint="@drawable/bottom_nav_color_state" 
    app:itemTextColor="@drawable/bottom_nav_color_state" 
    app:menu="@menu/bottom_navigation_main"/> 

<FrameLayout 
    android:id="@+id/contentFrame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@id/bottom_navigation" 
    android:background="#EDEDED"/> 

+0

разместим ваш XML-код, содержащий нижнюю навигацию. –

+0

check [this] (https://code.google.com/p/android/issues/detail?id=226182&sort=-id%20-stars%20-status&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars % 20Reporter% 20Opened) и [this] (http://stackoverflow.com/questions/40316411/bottomnavigationview-shadow-and-ripple-effect) –

+0

Попробуйте этот подход: http://stackoverflow.com/questions/41650778/android -bottom-navigation-bar-with-drop-shadow/41651284 # 41651284 –

ответ

21

Таким образом, на данный момент (25.1.0), мы должны установить android:background от BNV к @android:color/white иметь тень. Он не будет отображаться, если вы установили другой цвет (т. Е. Ваш основной цвет)

+0

работает как шарм! благодаря! – Sjd

+2

подтверждающее решение. важная (и странная) часть состоит в том, что ** должен быть «белым» цветом (от 'android' res или« custom »- но не настолько обычным, если он должен быть белым ...). не работая с черным и любым другим ... – snachmsm

+0

В этой ситуации, если 'app: elevation' будет использоваться, он добавляет некоторую тень в нижней части навигационного представления. Если я хочу добавить тень поверх навигации, что мне делать? @ NamNguyễn –

0

У меня была такая же проблема, и у меня была @android:color/white, поскольку предлагаемый OP не был приемлемым в моем случае. Поэтому, поскольку мы «не можем» получить тень с высотой и настраиваемым фоном, нам нужно взломать его.

Мой подход добавляет теневой вид внутри рамки, чтобы «имитировать» возвышение.

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/bottom_navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:elevation="8dp" 
    app:elevation="8dp" 
    app:itemBackground="@color/colorPrimary" 
    app:itemIconTint="@drawable/bottom_nav_color_state" 
    app:itemTextColor="@drawable/bottom_nav_color_state" 
    app:menu="@menu/bottom_navigation_main"/> 

<FrameLayout 
    android:id="@+id/contentFrame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@id/bottom_navigation" 
    android:background="#EDEDED"/> 

    <some.kind.of.pager.or.other.content.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <View 
     android:id="@+id/shadow_view" 
     android:layout_width="match_parent" 
     android:layout_height="4dp" 
     android:layout_gravity="bottom" 
     android:background="@drawable/shadow_gradient" /> 

</FrameLayout> 

где на фоне зрения тени не более, чем градиент формы, который расположен над всеми другими чуть выше нижним точкой зрения нав, что-то вроде:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:angle="90" 
     android:endColor="@android:color/transparent" 
     android:startColor="#8f000000" /> 
</shape> 

Надеется, что это помогает кому-то.

0

Это работает! Обратите внимание на то, что вы можете изменить цвет нижней панели с помощью:

"app:itemBackground="@color/white" 

но вы должны добавить:

android:background="@android:color/white" 

Complete:

<android.support.design.widget.BottomNavigationView 
    android:id="@+id/navigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="@android:color/white" 
    app:elevation="4dp" 
    app:itemBackground="@color/white" 
    app:itemIconTint="@color/grey" 
    app:itemTextColor="@color/grey" 
    app:menu="@menu/my_navigation_items" /> 

 Смежные вопросы

  • Нет связанных вопросов^_^