如果在使用 CoordinatorLayout 和 BottomSheet 时出现“视图不是CoordinatorLayout的子视图”错误,可以按照以下步骤解决:
CoordinatorLayout coordinatorLayout = findViewById(R.id.coordinatorLayout);
View bottomSheet = findViewById(R.id.bottomSheet);
BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
behavior.setPeekHeight(64); // 设置最小高度
// 设置其他 BottomSheetBehavior 的行为,例如监听状态变化等
// 将 BottomSheetBehavior 应用到 CoordinatorLayout
CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) bottomSheet.getLayoutParams();
layoutParams.setBehavior(behavior);
bottomSheet.setLayoutParams(layoutParams);
注意:确保在布局文件中正确地为 BottomSheet 设置了 id(例如 android:id="@+id/bottomSheet"
),并在代码中使用正确的 id(例如 R.id.bottomSheet
)。
implementation 'com.google.android.material:material:1.4.0'
通过以上步骤,你应该能够解决“视图不是CoordinatorLayout的子视图”错误,并正常使用 CoordinatorLayout 和 BottomSheet。