3

让我们假装简单的情况。我有一个FloatingActionButton,我添加了一个layout_behavior。我需要能够以编程方式启用或禁用此行为。我怎么做?我最初是通过XML添加行为如何以编程方式打开和关闭layout_behavior行为?

<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" 
    android:src="@drawable/mine" 
    app:backgroundTint="@color/colorPrimary" 
    app:layout_anchor="@id/default_message" 
    app:layout_anchorGravity="end|bottom" 
    app:layout_behavior=“mywidget.ScrollingFABBehavior"/> 

回答

9

您可以检索LayoutParams通过

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
CoordinatorLayout.LayoutParams params = 
    (CoordinatorLayout.LayoutParams) fab.getLayoutParams(); 

这一点,你可以用setBehavior()直接设置行为:

params.setBehavior(null); 

或把自己的行为实例并调用一种方法使其自行禁用(您制作的):

ScrollingFABBehavior behavior = 
    (ScrollingFABBehavior) params.getBehavior(); 
// This is a method you write 
behavior.setEnabled(false); 
相关问题