2016-08-05 14 views
1

CoordinatorLayoutを使用し、RelativeLayoutを使用していない場合、余分なスペースが画面計算で考慮される理由を教えてください。コーディネーターレイアウトと相対的レイアウト画面の差異

with CoordinatorLayoutwith RelativeLayout

下部にコーディネータレイアウトに追加されている青い部分を参照。

<?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="false" 
    tools:context=".MainActivity.controller.MainActivityNew"> 


     <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:id="@+id/appbar" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:titleTextColor="@android:color/white" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:background="?attr/colorPrimary"/> 

      <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/primary" 
      android:layout_below="@+id/toolbar"/> 

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

<FrameLayout 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:id="@+id/frame_container" 
     android:background="@android:color/white" 
     android:layout_width="fill_parent" 
     android:layout_below="@+id/appbar" 
     android:layout_height="match_parent" 

     /> 

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

私はFABを持ってFrameLayoutにフラグメントを追加しています。 CoordinatorLayoutの場合、ナビゲーションメニューボタンの下にFABボタンが表示されなくなります。

これに対して可能な解決策は何か。なぜこの余分なスペースがスクリーンレイアウトに追加され、この余分なボトムスペースを避けるのか。 layout_scrollFlags

<android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="?attr/colorPrimary" 
       app:layout_scrollFlags="scroll|enterAlways" 
       app:titleTextColor="@android:color/white" /> 

ツールバー

でscrollFlags
<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

CoordinatorLayout にlayout_below使用する必要はありませんことを取り除く:あなたはアプリを追加したツールバーでこの

答えて

0

使用layout_belowを使用しないでください。ここで私はこの

<?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" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="false"> 

     <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/AppTheme.AppBarOverlay"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="?attr/colorPrimary" 
       app:popupTheme="@style/AppTheme.PopupOverlay" /> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@color/colorAccent" /> 
     </android.support.design.widget.AppBarLayout> 

     <FrameLayout 
      android:id="@+id/frame_container" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@android:color/white" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    </android.support.design.widget.CoordinatorLayout> 
+0

が唯一の答えのために、これは十分ではありません使用し、完全なコードチェックを追加した は、あなたの答えに使用していたものを、簡単な説明を行います。なぜ、あなたが行った変更。だから彼はあなたの答えを通して学ぶことができます。 –

+0

大変申し訳ありません:) @jaydroider – MathaN

+0

私のFragmentにFABが必要です。なぜ私はこれをactivity_mainに入れますか?レイアウトによって獲得された高さがスクリーンから外れるのを見ることができるので、それはまだ画面から外に出るでしょう。重力パラメータは機能しません。 –

関連する問題