How to enable/disable FloatingActionButton Behavior

前端 未结 3 1170
自闭症患者
自闭症患者 2021-01-02 05:05

I am working on app in some fragment i want to hide FloatingActionButtton. When i set android:visibility=\"gone\". Behavior animation show me FloatingAction

相关标签:
3条回答
  • 2021-01-02 05:35

    In kotlin enable/disable is:

    fab.isEnabled = true
    fab.isEnabled = false
    
    0 讨论(0)
  • 2021-01-02 05:54

    There is no difference while setting up the visibility of a FAB, it works likely other controls.

    0 is for VISIBLE
    4 is for INVISIBLE
    8 is for GONE
    

    You can try something this;

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    // to make is disable for some requirement 
    fab.setVisibility(View.GONE);
    // to make it enable 
    fab.setVisibility(View.VISIBLE);
    
    0 讨论(0)
  • 2021-01-02 05:56

    Finally I find it solution and I want to share with you.

    You can enable/disable FloatingActionButton Behavior

    Disable Behavior

        FloatingActionButton fab2 = (FloatingActionButton)findViewById(R.id.fab2);
    
        CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab2.getLayoutParams();
        params.setBehavior(null);
        fab2.requestLayout();
        fab2.setVisibility(View.GONE);
    

    Enable Behavior

        CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab2.getLayoutParams();
        params.setBehavior(new QuickReturnFooterBehavior());
        fab2.requestLayout();
        fab2.setVisibility(View.VISIBLE);
    

    Edited: More Reusable Class

    public class CoordinateBehaviourUtils {
    
      public static void enableDisableViewBehaviour(View view,CoordinatorLayout.Behavior<View> behavior,boolean enable){
        CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) view.getLayoutParams();
        params.setBehavior(behavior);
        view.requestLayout();
        view.setVisibility((enable ? View.VISIBLE: View.GONE));
      }
    
    }
    

    How To Enable Using Common Class

    FloatingActionButton fab2 = (FloatingActionButton)findViewById(R.id.fab2);
    CoordinateBehaviourUtils.enableDisableViewBehaviour(fab2,new QuickReturnFooterBehavior(),true);
    

    How To Disable Using Common Class

    FloatingActionButton fab2 = (FloatingActionButton)findViewById(R.id.fab2);
    CoordinateBehaviourUtils.enableDisableViewBehaviour(fab2,null,false);
    

    Hope it will solve your problem :)

    0 讨论(0)
提交回复
热议问题