1

나는이 레이아웃비활성화 FAB 페이드 애니메이션

<?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="me.myapplication.ScrollingActivity"> 

    <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="pin" 
       app:popupTheme="@style/AppTheme.PopupOverlay"/> 

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

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

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     app:layout_anchor="@id/app_bar" 
     app:layout_anchorGravity="bottom|end" 
     app:srcCompat="@android:drawable/ic_dialog_email"/> 

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

이 있고 FAB는 페이드 다운 아웃 ->video

는이 페이드 애니메이션을 해제 할 수 있습니까?

+0

정확히 무슨 당신이 좋아하는 것이가하는 것처럼 보일 것입니다? 항상 고정 된 FAB을 사용하여 툴바를 축소합니까? 크기를 줄여야합니까? – Gaket

+0

미래의 독자를 위해 : 대답은 질문을 분명히합니다. FloatingActionButton의 behavior_autoHide 속성이 작동하지 않는 이유를 알아 내려고 시도하면서이 질문 + 답변을 발견했습니다. – amcnabb

답변

2

나는

FloatingActionButtonBehaviorbehavior_autoHide 옵션이 :-)를 발견했다.

문제는 레이아웃 xml에서이 옵션을 설정하려고했기 때문입니다. 그러나 FloatingActionButton.Behavior은 Android가 잘못된 생성자를 호출하기 때문에이 옵션을 읽지 못했습니다.

public Behavior() { 
    super(); 
    mAutoHideEnabled = AUTO_HIDE_DEFAULT; 
} 

레이아웃 xml에도 Behavior을 설정해야합니다. 이제 Android가 올바른 생성자를 호출하고 behavior_autoHide 플래그가 읽혀집니다.

public Behavior(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    TypedArray a = context.obtainStyledAttributes(attrs, 
      R.styleable.FloatingActionButton_Behavior_Layout); 
    mAutoHideEnabled = a.getBoolean(
      R.styleable.FloatingActionButton_Behavior_Layout_behavior_autoHide, 
      AUTO_HIDE_DEFAULT); 
    a.recycle(); 
} 

레이아웃 XML의 중요한 부분은

<android.support.design.widget.FloatingActionButton 
    app:behavior_autoHide="false" 
    app:layout_anchor="@id/appbar" 
    app:layout_behavior="android.support.design.widget.FloatingActionButton$Behavior" 
    app:layout_anchorGravity="bottom|right|end"/> 
+0

위대한 작품. 간단히'app : layout_behavior' 라인을 추가하는 것만으로도 버그를 해결할 수 있습니다. – amcnabb

0

"FloatingActionButton.Behavior"를 찾으려면 Ctrl + Shift + F를 사용하여 전체 텍스트 검색을 시도해보십시오. 이 클래스의 후속 클래스는 FAB의 동작을 정의하므로이 페이딩을 처리하는 선을 제거 할 수 있습니다. 찾을 수 없다면 FAB가 아닌 코디네이터 레이아웃에 적용한 경우에만 "행동"을 찾으십시오.

+0

나는 자동 숨기기 옵션이있는이 bahavior를 조사했지만 이것이 내가 원하는 것 (또는 내가 잘못된 방법으로 사용함)이 아니다. –

+0

이 클래스를 질문에 추가해 주시겠습니까? – Gaket