پنهان کردن نوار پیمایش

این درس نحوه پنهان کردن نوار پیمایش را که در Android 4.0 (سطح میانای برنامه‌سازی کاربردی ۱۴) معرفی شده است شرح می‌دهد.

هرچند این درس بر پنهان کردن نوار پیمایش تمرکز دارد، باید برنامه‌تان را طوری طراحی کنید که نوار وضعیت را هم‌زمان پنهان کند، همان‌طور که در پنهان کردن نوار وضعیت شرح داده شده است. پنهان کردن نوار پیمایش و وضعیت (درحالی‌که همچنان به‌راحتی دردسترس هستند) به محتوا اجازه می‌دهد از کل فضای نمایش استفاده کند و درنتیجه تجربه کاربری فراگیرتری ارائه دهد.

نوارهای سیستم

شکل ۱. نوار پیمایش.

پنهان کردن نوار پیمایش

می‌توانید نوار پیمایش را بااستفاده از پرچم SYSTEM_UI_FLAG_HIDE_NAVIGATION پنهان کنید. این قطعه کد هم نوار پیمایش و هم نوار وضعیت را پنهان می‌کند:

کاتلین

window.decorView.apply {
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
}

جاوا

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

به موارد زیر توجه کنید:

  • با این رویکرد، لمس کردن هرجایی از صفحه‌نمایش باعث می‌شود نوار پیمایش (و نوار وضعیت) دوباره ظاهر شود و نمایان باقی بماند. تعامل کاربر باعث می‌شود پرچم‌ها پاک شوند.
  • وقتی پرچم‌ها پاک شدند، اگر می‌خواهید نوارها را دوباره پنهان کنید، برنامه‌تان باید آن‌ها را بازنشانی کند. برای بحث درباره نحوه گوش دادن به تغییرات رؤیت‌پذیری واسط کاربر به‌منظور پاسخ دادن مناسب برنامه، به پاسخ دادن به تغییرات رؤیت‌پذیری واسط کاربر مراجعه کنید.
  • جایی که پرچم‌های میانای کاربر را تنظیم می‌کنید تفاوت ایجاد می‌کند. اگر نوارهای سیستم را در روش onCreate() فعالیتتان پنهان کنید و کاربر «صفحه اصلی» را فشار دهد، نوارهای سیستم دوباره ظاهر خواهند شد. وقتی کاربر فعالیت را دوباره باز می‌کند، onCreate() فراخوانده نمی‌شود، بنابراین نوارهای سیستم نمایان می‌مانند. اگر می‌خواهید تغییرات میانای کاربر سیستم هنگام پیمایش کاربر به داخل و خارج از فعالیت شما باقی بماند، پرچم‌های میانای کاربر را در onResume() یا onWindowFocusChanged() تنظیم کنید.
  • روش setSystemUiVisibility() فقط زمانی تأثیر دارد که نمایی که آن را از آن فراخوانی می‌کنید نمایان باشد.
  • خروج از نما باعث می‌شود پرچم‌های تنظیم‌شده با setSystemUiVisibility() پاک شوند.

نمایش محتوا در پشت نوار پیمایش

در Android نسخه ۴.۱ و بالاتر، می‌توانید محتوای برنامه‌تان را طوری تنظیم کنید که در پشت نوار پیمایش نشان داده شود تا با پنهان شدن و نمایش نوار پیمایش، اندازه محتوا تغییر نکند. برای انجام این کار، از SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION استفاده کنید. همچنین ممکن است لازم باشد از SYSTEM_UI_FLAG_LAYOUT_STABLE استفاده کنید تا به برنامه‌تان کمک کنید چیدمان پایداری داشته باشد.

وقتی از این رویکرد استفاده می‌کنید، مسئولیت اطمینان از اینکه بخش‌های مهم میانای کاربر برنامه‌تان توسط نوارهای سیستم پوشانده نشود برعهده شما خواهد بود. برای بحث بیشتر درباره این موضوع، به درس پنهان کردن نوار وضعیت مراجعه کنید.