کنترل های سفارشی

با استفاده از کنترل‌های سفارشی، می‌توانید عناصر رابط کاربری خود را در بالای نمای ناوبری اضافه کنید. Navigation SDK به‌طور خودکار کنترل‌های سفارشی شما را با تغییر طرح‌بندی داخلی تغییر می‌دهد.

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

متد setCustomControl موقعیت هایی را که در فهرست CustomControlPosition تعریف شده است ارائه می دهد:

  • SECONDARY_HEADER (فقط در حالت عمودی ظاهر می شود)
  • BOTTOM_START_BELOW
  • BOTTOM_END_BELOW

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

Custom Control Positions

یک کنترل سفارشی در زیر هدر اصلی اضافه کنید

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

این موقعیت در زیر سرصفحه اصلی نقشه قرار دارد و لبه بالایی با لبه پایینی سرصفحه اصلی تراز شده است. هدر ثانویه پیش فرض پنهان است. این موقعیت فقط در portrait mode پشتیبانی می شود. در landscape mode ، هدر ثانویه در دسترس نیست و طرح بندی تغییر نمی کند.

  1. یک نمای Android با عنصر رابط کاربری سفارشی یا ViewGroup ایجاد کنید.
  2. xml را باد کنید یا نمای سفارشی را نمونه‌سازی کنید تا نمونه‌ای از نما را به‌عنوان هدر ثانویه اضافه کنید.
  3. از NavigationView.setCustomControl یا NavigationFragment.setCustomControl با CustomControlPosition به عنوان SECONDARY_HEADER استفاده کنید.

    مثال زیر یک قطعه ایجاد می کند و کنترل سفارشی را در موقعیت هدر ثانویه اضافه می کند.

     mNavFragment.setCustomControl(getLayoutInflater().
       inflate(R.layout.your_custom_control, null),
          CustomControlPosition.SECONDARY_HEADER);
    

هدر ثانویه را حذف کنید

هنگامی که می خواهید هدر ثانویه را حذف کنید و به محتوای پیش فرض برگردید، از روش setCustomControl استفاده کنید.

  • برای حذف نما، View را روی null قرار دهید.

    mNavFragment.setCustomControl(null, CustomControlPosition.SECONDARY_HEADER);
    

یک کنترل سفارشی در بالای نمای ناوبری اضافه کنید

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

  1. یک نمای Android با عنصر رابط کاربری یا گروه نمایشی که می‌خواهید اضافه کنید ایجاد کنید.
  2. نمای ناوبری یا قطعه را ایجاد کنید.
  3. متد setCustomControl در نمای ناوبری یا قطعه فراخوانی کنید و کنترل و موقعیت مورد استفاده را مشخص کنید.

مثال زیر View سفارشی اضافه شده به NavigationFragment را نشان می دهد:

  private NavigationFragment mNavFragment;
    mNavFragment = (NavigationFragment)
      getFragmentManager().findFragmentById(R.id.navigation_fragment);

    // Create the custom control view.
    MyCustomView myCustomView = new MyCustomView();

    // Add the custom control to the bottom end corner of the layout.
    mNavFragment.setCustomControl(myCustomView, CustomControlPosition.
       BOTTOM_END_BELOW);

یک کنترل سفارشی را حذف کنید

هنگامی که می خواهید کنترل سفارشی را حذف کنید، از متد setCustomControl استفاده کنید و موقعیت کنترلی را که می خواهید حذف کنید، مشخص کنید.

  • نمای آن موقعیت را روی null قرار دهید.

    mNavFragment.setCustomControl(null, CustomControlPosition.BOTTOM_END_BELOW);