مشکل کار نکردن 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 در زمان بسته شدن اجرا میشود!
نظرات ثبت شده بدون دیدگاه