为了简单起见,我们假装一个简单的案例。我有一个FloatingActionButton,在上面添加一个layout_behavior。我需要能够以编程方式启用或禁用行为。我怎么做?我最初是通过xml添加行为
<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"/>
最佳答案
您可以通过以下方式检索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);