3

下のナビゲーションバーをFABに重ねようとしています。私は私のnavigationbarは次のようになりたい:FABを下のナビゲーションバーの内側で切り取らないようにする

Desired result

しかし、その代わりに、それはそうのようなボタンカットオフ:私はカットオフされることからFABを防ぐにはどうすればよい

current result

を?ここに私のXMLです:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.mobgen.designsprintapp.ui.main.MainActivity"> 

    <LinearLayout 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:orientation="vertical"> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

     <android.support.design.widget.BottomNavigationView 
      android:id="@+id/navigation" 
      android:layout_width="match_parent" 
      android:layout_height="56dp" 
      android:background="?android:attr/windowBackground" 
      android:backgroundTint="@color/colorPrimary" 
      app:itemBackground="@color/colorPrimary" 
      app:itemIconTint="@color/nav_item_color_state" 
      app:itemTextColor="@android:color/black" 
      app:menu="@menu/navigation" > 

      <android.support.design.widget.FloatingActionButton 
       android:id="@+id/tools" 
       android:layout_width="56dp" 
       android:layout_height="56dp" 
       android:layout_gravity="center" 
       android:layout_marginBottom="8dp" 
       android:elevation="6dp" 
       android:scaleType="center" 
       app:srcCompat="@drawable/play" /> 
      </android.support.design.widget.BottomNavigationView> 
    </LinearLayout> 
</android.support.design.widget.CoordinatorLayout> 

答えて

2

あなたの問題は、それが任意の幅/高さを取ることができないのに対し、明示的、FloatingActionButtonの幅とheighパラメータが指定されていることです。 app:fabSizeパラメータは、ファブに3つのサイズを指定します:auto、mini、およびnormal。

脱退 layout_width

wrap_contentとしてlayout_height、及び(リストから、または他のパラメータ)app:fabSize="normal"を用いて所望のFABサイズを指定します。

fabには内部埋め込みがあるため、BottomNavigationViewの高さはwrap_contentにしてください。囲むViewGroupandroid:clipChildren="false"を適用囲むレイアウトの外に子を描画するために


+0

は、私はFABは、下のナビゲーションビューの境界内に完全にしたくない、それはあなたが画像上で見ることができるように、わずかにトップをオーバーラップしなければなりません。 – Tim

+0

@Tim、それがあなたの必要条件ならば、 '' android:clipChildren = "false" '](https://developer.android.com/reference/android/view/ViewGroup.html#attr_android:clipChildren)を' BottomNavigationView '。 – azizbekian

+0

linroid:clipChildren = "false"を直線レイアウトに適用する必要がありました – Tim

0

内のボタンはです。外側に移動すると、完全に表示され、を超えてのナビゲーションバーに移動します。本当に重要ではありません

<LinearLayout 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:orientation="vertical"> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

     <android.support.design.widget.BottomNavigationView 
      android:id="@+id/navigation" 
      android:layout_width="match_parent" 
      android:layout_height="56dp" 
      android:background="?android:attr/windowBackground" 
      android:backgroundTint="@color/colorPrimary" 
      app:itemBackground="@color/colorPrimary" 
      app:itemIconTint="@color/nav_item_color_state" 
      app:itemTextColor="@android:color/black" 
      app:menu="@menu/navigation" > 

      </android.support.design.widget.BottomNavigationView> 

     <android.support.design.widget.FloatingActionButton 
       android:id="@+id/tools" 
       android:layout_width="56dp" 
       android:layout_height="56dp" 
       android:layout_gravity="center" 
       android:layout_marginBottom="8dp" 
       android:elevation="6dp" 
       android:layout_anchor="@id/navigation" 
       android:layout_anchorGravity="top|center" 
       android:scaleType="center" 
       app:srcCompat="@drawable/play" /> 
    </LinearLayout> 
+0

私はそれを試しましたが、メニューバーの下にボタンを置くだけです – Tim

+0

ああ、ops!申し訳ありませんが、あなたは 'LinearLayout'の外のアイテムをbotする必要があります –

関連する問題