الگوی رابط کاربری swipe-to-refresh کاملاً در ویجت SwipeRefreshLayout پیادهسازی شده است که swipe عمودی را تشخیص میدهد، یک نوار پیشرفت متمایز نمایش میدهد و متدهای callback را در برنامه شما فعال میکند. این رفتار را با اضافه کردن ویجت به فایل layout خود به عنوان والد یک ListView یا GridView و پیادهسازی رفتار refresh که هنگام swipe کاربر فراخوانی میشود، فعال کنید.
این صفحه نحوه افزودن ویجت به طرحبندی موجود را نشان میدهد. همچنین نحوه افزودن یک عمل تازهسازی به ناحیه سرریز نوار عمل را نشان میدهد تا کاربرانی که نمیتوانند از حرکت کشیدن انگشت استفاده کنند، بتوانند بهروزرسانی دستی را با یک دستگاه خارجی فعال کنند.
وابستگی SwipeRefreshLayout را اضافه کنید
برای استفاده از SwipeRefreshLayout در برنامه خود، وابستگی زیر را به فایل build.gradle خود اضافه کنید:
گرووی
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
کاتلین
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
ویجت SwipeRefreshLayout را اضافه کنید
برای افزودن ویجت swipe-to-refresh به یک برنامه موجود، SwipeRefreshLayout به عنوان والد یک ListView یا GridView اضافه کنید. SwipeRefreshLayout فقط از یک ListView یا GridView فرزند پشتیبانی میکند.
مثال زیر نحوهی افزودن ویجت SwipeRefreshLayout را به یک فایل layout موجود که حاوی ListView است، نشان میدهد:
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swiperefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
همچنین میتوانید از ویجت SwipeRefreshLayout به همراه یک ListFragment استفاده کنید. اگر طرحبندی شامل یک ListView با شناسه "@android:id/list" باشد، قابلیت swipe-to-refresh به طور خودکار پشتیبانی میشود. با این حال، تعریف صریح ListView به این روش، ساختار نمای پیشفرض ListFragment را جایگزین میکند. اگر میخواهید از ساختار نمای پیشفرض استفاده کنید، بخشهایی از رفتار SwipeRefreshLayout و ListFragment را لغو کنید.
یک عمل تازهسازی به نوار عمل اضافه کنید
یک عمل تازهسازی به نوار اقدام برنامه خود اضافه کنید تا کاربرانی که نمیتوانند حرکات کشیدن انگشت را انجام دهند، بتوانند بهروزرسانی دستی را فعال کنند. به عنوان مثال، کاربرانی که نیازهای دسترسی دارند میتوانند با استفاده از دستگاههای خارجی مانند صفحهکلید و کلیدهای جهتنما، اقدامات نوار اقدام را فعال کنند.
با تنظیم ویژگی android:showAsAction=never ، عمل تازهسازی را به عنوان یک آیتم منو، به جای یک دکمه، اضافه کنید. اگر این عمل را به عنوان یک دکمه نمایش دهید، کاربران ممکن است فرض کنند که عمل دکمه تازهسازی با عمل کشیدن انگشت برای تازهسازی متفاوت است. کمتر به چشم آمدن عمل تازهسازی در نوار عمل، کاربران را تشویق میکند تا بهروزرسانیهای دستی را با حرکات کشیدن انگشت انجام دهند، در حالی که گزینه قابل دسترسی را که کاربران D-pad به دنبال آن هستند، حفظ میکنند.
کد زیر نحوه اضافه کردن عمل کشیدن انگشت برای تازه کردن را به ناحیه سرریز نشان میدهد:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_refresh" android:showAsAction="never" android:title="@string/menu_refresh"/> </menu>
