[英]Floating action button is jump, when click on it
當我點擊FAB顯示Snackbar時,Fab跳躍並且Snackbar隱藏了Fab
我的代碼
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/main_coordinator_layout">
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottom_app_bar"
app:fabAlignmentMode="center"
android:layout_width = match_parent
android:layout_height = wrap_content
android:layout_gravity = bottom
android:backgroundTint" = @color/colorPrimary
fabCradleMargin" = 15dp
fabCradleRoundedCornerRadius = 15dp
hideOnScroll = true
layout_scrollFlags = scroll|enterAlways
buttonGravity = bottom
app:menu="@menu/menu"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:src="@drawable/ic_plus"
app:layout_anchor="@id/bottom_app_bar"
android:layout_width = wrap_content
android:layout_height = wrap_content
android:backgroundTint = "@color/colorPrimaryDark"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
我嘗試在快餐欄上更改params視圖,但它不起作用
public void showSnackBar(CoordinatorLayout coordinatorLayout, FloatingActionButton fab, String text) {
Snackbar snackbar = Snackbar.make(coordinatorLayout, text, Snackbar.LENGTH_SHORT);
View snackBarView = snackbar.getView();
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) snackBarView.getLayoutParams();
params.setMargins(
params.leftMargin,
params.topMargin,
params.rightMargin,
params.bottomMargin + 100);
snackBarView.setLayoutParams(params);
snackbar.setAnchorView(fab);
snackbar.show();
}
我該如何解決? 這樣FAB就不會跳躍或者Snackbar出現了
因為您正在使用CoordinatorLayout
FAB
將在snackbar
出現時始終向上移動。
CoordinatorLayout可以監聽所有直接子視圖的事件,當發生某些事件(如快餐欄彈出)時,它也會移動浮動按鈕。
所以這是一種自然行為,所以要避免你應該創建一個自定義行為。 那么,你如何自定義這種行為? 您可以定義自己的Behavior子類,請閱讀本教程以獲取更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.