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); 
相關問題