1

То, что я хочу добиться того, чтобы иметь Button контейнер в CoordinatorLayoutКнопка должна действовать как FAB когда закусочной показан

android.support.design.widget.CoordinatorLayout 
android.widget.button 

, который реагирует на закусочной как FloatingActionButton.
Этот использует FloatingActionButton.
Поведение, которое распространяется CoordinatorLayout.Behavior<FloatingActionButton>.

Должен ли я определять собственное поведение самостоятельно или есть какие-либо общие компоненты, которые реагируют одинаково?

ответ

1

Вы можете определить свой собственный макет и обычай CoordinatorLayout.Behavior
Вы можете клонировать структуру FloatingActionButton.

Что-то вроде:

@CoordinatorLayout.DefaultBehavior(ButtonLayout.Behavior.class) 
    public class ButtonLayout extends LinearLayout { 


     public static class Behavior extends 
      android.support.design.widget.CoordinatorLayout.Behavior<ButtonLayout> { 

      public boolean layoutDependsOn(CoordinatorLayout parent, ButtonLayout child, View dependency) { 
       return dependency instanceof Snackbar.SnackbarLayout; 
      } 

      public boolean onDependentViewChanged(CoordinatorLayout parent, ButtonLayout child, View dependency) { 
       if(dependency instanceof Snackbar.SnackbarLayout) { 
        this.updateFabTranslationForSnackbar(parent, child, dependency); 
       } 
       return false; 
      } 

      private void updateFabTranslationForSnackbar(CoordinatorLayout parent, ButtonLayout fab, View snackbar) { 
       //copy from FloatingActionButton.Behavior 
      } 

     } 

    }