با استفاده از کنترلهای سفارشی، میتوانید عناصر رابط کاربری خود را در بالای نمای ناوبری اضافه کنید. Navigation SDK بهطور خودکار کنترلهای سفارشی شما را با تغییر طرحبندی داخلی تغییر میدهد.
برای هر موقعیت، می توانید یک کنترل سفارشی تنظیم کنید. کنترل سفارشی میتواند یک عنصر UI باشد یا اگر طراحی شما به موارد بیشتری نیاز دارد، میتوانید از یک ViewGroup
با چندین عنصر UI استفاده کنید.
متد setCustomControl
موقعیت هایی را که در فهرست CustomControlPosition
تعریف شده است ارائه می دهد:
-
SECONDARY_HEADER
(فقط در حالت عمودی ظاهر می شود) -
BOTTOM_START_BELOW
-
BOTTOM_END_BELOW
در تصویر زیر، نمونههایی از هر موقعیت را در قرار دادن یک کنترل رابط کاربر مشاهده میکنید که راننده را از موقعیت مکانی یک سوارکار مطلع میکند.
یک کنترل سفارشی در زیر هدر اصلی اضافه کنید
بهطور پیشفرض، طرحبندیها یک پیکان سپس یا راهنمای خط را در زیر عنوان اصلی نمایش میدهند. برنامه شما میتواند طرحبندی پیشفرض را با یک مجموعه کنترل سفارشی در موقعیت هدر ثانویه جایگزین کند. این کنترل جایگزین محتوای پیش فرض در بالای نمای ناوبری می شود. اگر نمای شما دارای پسزمینه باشد، آن پسزمینه در جای خود باقی میماند. وقتی برنامه شما محتوای سفارشی را حذف می کند، محتوای پیش فرض در جای خود ظاهر می شود.
این موقعیت در زیر سرصفحه اصلی نقشه قرار دارد و لبه بالایی با لبه پایینی سرصفحه اصلی تراز شده است. هدر ثانویه پیش فرض پنهان است. این موقعیت فقط در portrait mode
پشتیبانی می شود. در landscape mode
، هدر ثانویه در دسترس نیست و طرح بندی تغییر نمی کند.
- یک نمای Android با عنصر رابط کاربری سفارشی یا ViewGroup ایجاد کنید.
- xml را باد کنید یا نمای سفارشی را نمونهسازی کنید تا نمونهای از نما را بهعنوان هدر ثانویه اضافه کنید.
از
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 به سمت بالا حرکت میکنند تا کنترل سفارشی را در خود جای دهد.
- یک نمای Android با عنصر رابط کاربری یا گروه نمایشی که میخواهید اضافه کنید ایجاد کنید.
- نمای ناوبری یا قطعه را ایجاد کنید.
- متد
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);