创建一个简单的行为

创建 Behavior 只需扩展 CoordinatorLayout.Behavior 类。

扩展 CoordinatorLayout.Behavior

例:

public class MyBehavior<V extends View> extends CoordinatorLayout.Behavior<V> {

      /**
       * Default constructor.
       */
      public MyBehavior() {
      }
    
      /**
       * Default constructor for inflating a MyBehavior from layout.
       *
       * @param context The {@link Context}.
       * @param attrs The {@link AttributeSet}.
       */
      public MyBehavior(Context context, AttributeSet attrs) {
        super(context, attrs);
      }
}

此行为需要附加到要调用的 CoordinatorLayout 的子视图。

以编程方式附加行为

MyBehavior myBehavior = new MyBehavior();
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) view.getLayoutParams();
params.setBehavior(myBehavior);

在 XML 中附加行为

你可以使用 layout_behavior 属性在 XML 中附加行为:

<View
  android:layout_height="...."
  android:layout_width="...."
  app:layout_behavior=".MyBehavior" />

自动附加行为

如果你使用自定义视图,则可以使用 @CoordinatorLayout.DefaultBehavior 注释附加行为:

@CoordinatorLayout.DefaultBehavior(MyBehavior.class)
public class MyView extends ..... {

}