2016-03-31 13 views
1

私はCollapsingToolbarLayoutを持ち、内側にはFloatingActionButtonsを持っています。これらのFABは、Toolbarが展開されている場合にのみ表示されます。崩壊すると、それらは隠されます。ツールバーが折りたたまれている場合、私はそれらを見えるようにする必要があります。どうしたらいいですか?折りたたみツールバーレイアウトと浮動アクションボタン

ヒントのおかげでたくさん...

<?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=".CalendarEventInsUpdActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/app_bar_height" 
     android:fitsSystemWindows="true" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/toolbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

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

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

    <include layout="@layout/content_calendar_event"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/btnSave" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_menu_save" 
     app:backgroundTint="@android:color/holo_green_light" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|center"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/btnCancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_menu_revert" 
     app:backgroundTint="@android:color/holo_red_light" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end"/> 

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

ここ –

+0

ショーのスクリーンショットとxmlをあなたのxmlレイアウトを追加し、ここ –

+0

は、私の答えを波平???????? –

答えて

0

あなたはFABにBehaviorを追加する必要があります。その後、XML FABタグ

app:layout_behavior="com.example.ScrollingFABBehavior" /> 
+0

彼のソリューションでは、私はJavaコードのFABの動作に影響を与える可能性があるので、私は@royB答えを選んだ。 – Jodynek

0

あなたがcordinatorLayoutの直接の子としてFabを挿入し、レイアウト動作を使用する必要があり、:

<android.support.design.widget.FloatingActionButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
+0

Layout_behaviors like私のような –

0

このXMLを試してみてくださいを使用して動作を追加

public class ScrollingFABBehavior extends CoordinatorLayout.Behavior<FloatingActionButton> { 
    private int toolbarHeight; 

    public ScrollingFABBehavior(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     this.toolbarHeight = Utils.getToolbarHeight(context); 
    } 

    @Override 
    public boolean layoutDependsOn(CoordinatorLayout parent, FloatingActionButton fab, View dependency) { 
     return dependency instanceof AppBarLayout; 
    } 

    @Override 
    public boolean onDependentViewChanged(CoordinatorLayout parent, FloatingActionButton fab, View dependency) { 
     //do nothing with the fab or write your logic for the FAB 
     return true; 
    } 
} 

:に似た何かを試してみてください

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/detail_backdrop_height" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleMarginStart="48dp" 
      app:expandedTitleMarginEnd="64dp"> 



      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
       app:layout_collapseMode="pin" /> 

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

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

    <include layout="@layout/content_calendar_event"/> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/btnSave" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_menu_save" 
     app:backgroundTint="@android:color/holo_green_light" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|center"/> 

     <android.support.design.widget.FloatingActionButton 
     android:id="@+id/btnCancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@android:drawable/ic_menu_revert" 
     app:backgroundTint="@android:color/holo_red_light" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end"/> 


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