توضیح یک قطعه کد

گزارش
سوال

لطفا علت گزارش خود را توضیح دهید.

گزارش لغو

سلام به همه

دوستان این قطعه کد میاد و جلوگیری میکنه از اینکه کاربر با عمل swipe بیاد و snackbar پایین صفحه رو به اصطلاح dismiss کنه ولی چیزی که من میخام اینه که متد هایی مثل getViewTreeObserver و addOnGlobalLayoutListener دقیقا کارشون چیه و البته تحقیق کردم و فهمیدم کلا observer در واقع ابجکتی هست که به یک ابجت دیگه داره گوش میده ولی یه توضیح بدید ممنون میشم

snackbar= Snackbar.make(coordinatorLayout,"دسترسی به اینترنت ندارید", Snackbar.LENGTH_INDEFINITE);
final Snackbar.SnackbarLayout snackbarLayout = (Snackbar.SnackbarLayout) snackbar.getView();

snackbarLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewGroup.LayoutParams lp = snackbarLayout.getLayoutParams();
if (lp instanceof CoordinatorLayout.LayoutParams) {
((CoordinatorLayout.LayoutParams) lp).setBehavior(new Dismisdisable());
snackbarLayout.setLayoutParams(lp);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
snackbarLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
//noinspection deprecation
snackbarLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});

snackbar.show();

و کلاس Dismisdisable

private class Dismisdisable extends SwipeDismissBehavior{
@Override
public boolean canSwipeDismissView(@NonNull View view) {
return false;
}
}

0
اندروید - android 0 پاسخ 197 بازدید 0

درباره نویسنده

ارسال نظر