2016-04-20 23 views
6

Używam biblioteki do nowych pasków materiału Design Material i mam bardzo dziwny problem. Ilekroć umieszczam to w moim układzie koordynatora, pojawia się on na górze paska narzędzi. Dlaczego tak się dzieje i jak mogę to naprawić? Jak mogę to zrobić, aby przycisk pływającego działania znajdował się powyżej tych pasków i nie zachodził na niego?Pasek narzędzi Android Bottom Bars nakładających się na siebie

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
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" 
android:fitsSystemWindows="true" 
tools:context="com.marlonjones.kansei.MainActivity"> 
<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    app:elevation="0dp" 
    android:theme="@style/AppTheme.AppBarOverlay"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:elevation="4dp" 
     android:background="?attr/colorPrimary"/> 
</android.support.design.widget.AppBarLayout> 
<include layout="@layout/content_main"/> 
<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@drawable/ic_write" /> 
<com.luseen.luseenbottomnavigation.BottomNavigation.BottomNavigationView 
    android:id="@+id/bottomNavigation" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    app:bnv_colored_background="true" 
    app:bnv_with_text="false" 
    app:bnv_shadow="true" 
    app:bnv_tablet="false" 
    app:bnv_viewpager_slide="true" 
    app:bnv_active_color="@color/colorPrimary" 
    app:bnv_active_text_size="@dimen/bottom_navigation_text_size_active" 
     app:bnv_inactive_text_size="@dimen/bottom_navigation_text_size_inactive"/> 
</android.support.design.widget.CoordinatorLayout> 

enter image description here

+0

Jeśli potrzebny jest dowolny referez, co mam na myśli, to muszę wyglądać, zapoznaj się ze Specyfikacją projektu materiałowego, a także zajrzyj do aplikacji Google+ (dla FAB-u nad pasami) – MJonesDev

+0

możesz udostępnić zrzut ekranu –

+0

Jasne, daj ja sekundę. Opublikuję zrzut ekranu mojego problemu i tego, czego potrzebuję. – MJonesDev

Odpowiedz

0

Jednym z rozwiązań jest należy dodać LinearLayout (lub inny Layout Managers) wewnątrz CoordinatorLayout

<?xml version="1.0" encoding="utf-8"?> 
     <android.support.design.widget.CoordinatorLayout 
     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" 
     android:fitsSystemWindows="true" 
     tools:context="com.marlonjones.kansei.MainActivity"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      app:elevation="0dp" 
      android:theme="@style/AppTheme.AppBarOverlay"> 
      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:elevation="4dp" 
       android:background="?attr/colorPrimary"/> 
     </android.support.design.widget.AppBarLayout> 
     <include layout="@layout/content_main"/> 
     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      android:src="@drawable/ic_write" /> 
     <com.luseen.luseenbottomnavigation.BottomNavigation.BottomNavigationView 
      android:id="@+id/bottomNavigation" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      app:bnv_colored_background="true" 
      app:bnv_with_text="false" 
      app:bnv_shadow="true" 
      app:bnv_tablet="false" 
      app:bnv_viewpager_slide="true" 
      app:bnv_active_color="@color/colorPrimary" 
      app:bnv_active_text_size="@dimen/bottom_navigation_text_size_active" 
       app:bnv_inactive_text_size="@dimen/bottom_navigation_text_size_inactive"/> 
    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 
3

trzy alternatywne sposoby próbują, nie wiem, czy im działa:

1 - Umieść BottomNavigationView poza obszarem CoordinatorLayout, zagnieżdżając wszystkie elementy w Relati veLayout i ustawienie marginBottom dla CoordinatorLayout (jako przykład tej biblioteki:

android:layout_marginBottom="@dimen/bottom_navigation_height "

).

2 - Pozostawić BottomNavigationView wewnątrz CoordinatorLayout, stosując param w FrameLayout'S (CoordinatorLayout jest FrameLayout)

android:layout_gravity

zamiast

android:layout_alignParentBottom

(czyli PARAM RelativeLayout za). Musisz dodać marginBottom do głównej treści.

3 - Lepiej jeśli prace: Zachować BottomNavigationView wewnątrz CoordinatorLayout, usuwając android:layout_alignParentBottom i starając się nadać mu BottomSheetBehavior jak mówi Biblioteka projektu

app:behavior_peekHeight="XXdp" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"

PeekHeight XX powinna być wysokość BottomNavigationView , musisz również dodać marginBottom do głównej treści.

+0

dla mnie Pierwsza prosta i łatwa naprawa. Dzięki – Sanny

+0

Używane trzecie rozwiązanie. Dzięki. – withoutname