2016-04-20 23 views
6

Sto utilizzando una libreria per le nuove barre inferiori di Design materiale e sto avendo un problema molto strano. Ogni volta che lo metto nel mio layout di Coordinator, viene visualizzato in cima alla barra degli strumenti. Perché sta succedendo questo, e come posso risolverlo? Inoltre, come posso averlo in modo che il pulsante di azione mobile sia sopra queste barre e non si sovrapponga?Barra inferiore di Android Barra degli strumenti sovrapposta

<?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

Se una referece è necessario per quello che voglio dire ho bisogno di guardare come, fare riferimento al materiale Progettazione Spec e anche guardare l'app di Google+ (per la FAB sulle barre) – MJonesDev

+0

è possibile condividere lo screenshot –

+0

Certo, dare io un secondo Pubblicherò uno screenshot del mio problema e di cosa ho bisogno. – MJonesDev

risposta

0

Una soluzione è che si dovrebbe aggiungere le LinearLayout (o diverso Layout Managers) all'interno 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

Tre modi alternativi per provare, non so se loro lavori:

1 - Posiziona il BottomNavigationView all'esterno del CoordinatorLayout, annidando tutti quelli in un Relati veLayout e l'impostazione di un MarginBottom per il CoordinatorLayout (come ad esempio quello della biblioteca:

android:layout_marginBottom="@dimen/bottom_navigation_height "

).

2 - Conservare il BottomNavigationView all'interno del CoordinatorLayout, ma usando param del FrameLayout (CoordinatorLayout è un FrameLayout)

android:layout_gravity

anziché

android:layout_alignParentBottom

(cioè param del RelativeLayout). Devi aggiungere anche il margineBottom al contenuto principale.

3 - Il meglio se funziona: conservare il BottomNavigationView all'interno del CoordinatorLayout, rimuovendo il android:layout_alignParentBottom e cercando di dargli la BottomSheetBehavior come Design Library dice

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

PeekHeight XX dovrebbe essere l'altezza BottomNavigationView , devi aggiungere anche marginBottom al contenuto principale.

+0

per me la prima è una soluzione semplice e facile. Grazie – Sanny

+0

Usato terza soluzione. Grazie. – withoutname

Problemi correlati