📅  最后修改于: 2023-12-03 15:26:16.850000             🧑  作者: Mango
android.support.design.widget.AppBarLayout$ScrollingViewBehavior
是一个行为子类,它可以让一个视图(例如 RecyclerView
或 NestedScrollView
)在 AppBarLayout
上滚动。
AppBarLayout
上滚动要将 ScrollingViewBehavior
与 AppBarLayout
中的视图一起使用,只需在视图上添加 app:layout_behavior
属性,然后将其设为 android.support.design.widget.AppBarLayout$ScrollingViewBehavior
。例如:
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" />
也可以将此特定行为用于自定义视图或视图组。为此,您需要重写 onStartNestedScroll
和 onNestedScroll
方法,并根据需要返回布尔值。以下是一个示例类:
public class MyScrollingViewBehavior extends AppBarLayout.ScrollingViewBehavior {
public MyScrollingViewBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, View child, View directTargetChild, View target, int nestedScrollAxes) {
// 在这里自定义开始嵌套滚动行为
return super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);
}
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, View child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
// 在这里自定义嵌套滚动行为
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
}
}
最后在布局里将自定义的行为类用于视图上即可,例如:
<com.example.MyCustomView
android:id="@+id/customView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="com.example.MyScrollingViewBehavior" />
在使用 AppBarLayout
时,ScrollingViewBehavior
是一个非常有用的行为子类,可将视图与 AppBarLayout
上滚动。
如果您需要自定义参数或行为,可以重写 onStartNestedScroll
和 onNestedScroll
方法,并使用自定义的行为类。