مشکل کار نکردن setOnCloseListener در SearchView اندروید (اکشن بار)

مشکل کار نکردن setOnCloseListener در SearchView اندروید (اکشن بار)
بررسی رویداد بسته شدن SearchView در اندروید


اگر در پروژه‌ی خود و در قسمت اکشن بار (تولبار) از SearchView استفاده می‌کنید، ممکن است با رویداد setOnCloseListener به مشکل برخورده کرده باشید و این رویداد در زمان بسته شدن ویوی سرچ، فراخوانی نشده و اجرا نشود؛ اما در این‌جا، موارد جایگزینی را برای رفع این مشکل قرار می‌دهیم.

استفاده از رویداد OnAttachStateChangeListener

در این روش، از رویداد View.OnAttachStateChangeListener به جای setOnCloseListener استفاده می‌کنیم! درواقع یک جور روش دور زدن است.
و اگر قبلا آشنایی داشته باشید، می‌دانید که رویداد OnAttachStateChangeListener، هم در زمان ایجاد شدن و هم در زمان از بین رفتن ویو روی صفحه اجرا می‌شود! بنابراین در این‌جا، حالت از بین رفتن برایمان مهم است.

searchView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
  @Override
  public void onViewAttachedToWindow(View v) {
    Log.d("FuLLKade", "سرچ باز شد");
  }

  @Override
  public void onViewDetachedFromWindow(View v) {
    Log.d("FuLLKade", "سرچ بسته شد");
  }
});

متد onViewAttachedToWindow در زمان باز شدن و متد onViewDetachedFromWindow در زمان بسته شدن اجرا می‌شود!


چنانچه روش فوق برایتان کارساز نبود، از قسمت نظرات اعلام کنید تا در صورت ممکن، روش‌های دیگری را نیز قرار دهیم.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک