المكون ToolbarAndroid في ReactNative

من موسوعة حسوب
مراجعة 09:52، 19 فبراير 2021 بواسطة رقية-بورية (نقاش | مساهمات) (رفع المحتوى)

ملاحظة: مهملة وأزيلت من React Native ابتداء من الإصدار 0.61.0. استخدم @react-native-community/toolbar-android بدلًا منها.

مكوّن منصّة React الذي يغلّف الأداة Toolbar الخاصة بمنصّة Android فقط، حيث يمكن لشريط الأدوات (Toolbar) عرض شعارٍ (logo) ورمز تنقّل (navigation icon) وعنوانٍ رئيسيٍّ وفرعيٍّ وقائمة إجراءاتٍ (actions)، حيث يتوضّع العنوان الرئيسي والفرعي في المنتصف كونهما يتوسّعان بينما يتوضّع الشعار ورمز شريط التنقل على اليسار، وقائمة الإجراءات على اليمين.

في حال احتوى شريط الأدوات على مكوّن ابنٍ وحيدٍ فسيعرَض بين العنوان وقائمة الإجراءات.

على الرغم من دعم شريط الأدوات استخدام الصور البعيدة (remote) كرموز للشعار وشريط التنقل وقائمة الإجراءات إلا أن ذلك يُستخدَم فقط في الوضع DEV حيث يترجَم require('./some_icon.png') إلى عنوان URL مجمّعٍ. إلا إنه يجب استخدام مصدرٍ قابل للرسم لهذه الرموز في وضع الإصدار (release mode) دائمًا، بالتالي لا تستخدَم العناوين {uri: 'http://...'} بشكلٍ صريحٍ، لكي يستطيع require('./some_icon.png') اختيار المصدر المناسب لهذه الرموز تلقائيًا.

مثال

render: function() {
  return (
    <ToolbarAndroid
      logo={require('./app_logo.png')}
      title="AwesomeApp"
      actions={[{title: 'Settings', icon: require('./icon_settings.png'), show: 'always'}]}
      onActionSelected={this.onActionSelected} />
  )
},
onActionSelected: function(position) {
  if (position === 0) { // index of 'Settings'
    showSettings();
  }
}

الخاصيات

موروثة من الخاصيات View props.

actions

تضع الإجراءات المحتملة في شريط الأدوات كجزءٍ من قائمة الإجراءات، حيث تظهر كأيقوناتٍ أو نصٍّ على يمين شريط الأدوات، وفي حال لم تتّسع فستوضع في قائمة الفائض overflow. وتأخذ هذه الخاصيّة مصفوفةً من الكائنات، ولكلّ كائنٍ المفاتيح التالية:

  • title: عنوان الإجراء، مطلوب.
  • icon: أيقونة الإجراء، مثل require('./some_icon.png').
  • show: يحدد عرض الإجراء كأيقونةٍ أو إخفاءه في قائمة الفائض (overflow)، وله القيم always و ifRoom و never.
  • showWithText: قيمة منطقية، يحدِّد إظهار النص بجانب الأيقونة أو عدم إظهاره.
النوع مطلوب
مصفوفة من الكائن (array of object: {title: string,icon: optionalImageSource,show: enum('always', 'ifRoom', 'never'),showWithText: bool}) لا

contentInsetStart

تحدد شكل محتوى حافة بداية شريط الأدوات، حيث سيؤثر هذا على المساحة الصالحة لمحتوى شريط الأدوات أكثر من رمز شريط التنقّل والقائمة، كما يحدد الحدّ الأدنى لهامش المحتوى، ويمكن استخدامه لمحاذاة محتوى شريط الأدوات بكفاءةٍ على طول خطوط الشبكة المعروفة.

النوع مطلوب
عدد (number) لا

contentInsetEnd

تحدد شكل محتوى حافة نهاية شريط الأدوات، حيث سيؤثر هذا على المساحة الصالحة لمحتوى شريط الأدوات أكثر من رمز شريط التنقّل والقائمة، كما يحدد الحدّ الأدنى لهامش المحتوى، ويمكن استخدامه لمحاذاة محتوى شريط الأدوات بكفاءةٍ على طول خطوط الشبكة المعروفة.

النوع مطلوب
عدد (number) لا

تحدّد شعار شريط الأدوات.

النوع مطلوب
مصدر الصورة (optionalImageSource) لا

navIcon

تحدد أيقونة شريط التنقّل.

النوع مطلوب
مصدر الصورة (optionalImageSource) لا

onActionSelected

ردّ نداءٍ يستدعى عند اختيار الإجراء، حيث يُمرَّر لها موقع الإجراء ضمن مصفوفة الإجراءات.

النوع مطلوب
دالة (function) لا

onIconClicked

رد نداءٍ يستدعى عند اختيار الرمز.

النوع مطلوب
دالة (function) لا

overflowIcon

تحدد أيقونة قائمة الفائض.

النوع مطلوب
مصدر الصورة (optionalImageSource) لا

rtl

تُستخدم لضبط اتجاه شريط الأدوات من اليسار إلى اليمين، كما يجب إضافة android:supportsRtl="true" إلى الملف AndroidManifest.xml الخاص بالتطبيق ومن ثم استدعاء setLayoutDirection(LayoutDirection.RTL) في دالة onCreate للنشاط الرئيسي (MainActivity).

النوع مطلوب
قيمة منطقية (bool) لا

subtitle

تحدد العنوان الفرعي لشريط الأدوات.

النوع مطلوب
سلسلة نصية (string) لا

subtitleColor

تحدد لون العنوان الفرعيّ لشريط الأدوات.

النوع مطلوب
لون (color) لا

testID

تُستخدم لوضع هذا الإظهار في الاختبارات الشّاملة (end-to-end).

النوع مطلوب
سلسلة نصية (string) لا

title

تحدد العنوان الرئيسيّ لشريط الأدوات.

النوع مطلوب
سلسلة نصية (string) لا

titleColor

تحدد لون العنوان الرئيسيّ لشريط الأدوات.

النوع مطلوب
لون (color) لا

مصادر