ToolbarAndroid في React Native
ملاحظة: مهملة وأزيلت من 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) استخدام مصدر قابل للرسم (drawable resource) من أجل هذه الرموز (icons). بالتالي فإنه لا يجب استخدام العناوين {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();
}
}
الخاصيّات (Props)
موروثة من الخاصيّات 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) | لا |
logo
تحدد شعار شريط الأدوات.
النوع | مطلوب |
---|---|
مصدر الصورة (Image.propTypes.source) | لا |
تحدد رمز شريط التنقّل.
النوع | مطلوب |
---|---|
مصدر الصورة (Image.propTypes.source) | لا |
onActionSelected
تٌستدعى هذه الدالة عند اختيار الإجراء, حيث يُمرَّر لها موقع الإجراء ضمن مصفوفة الإجراءات.
النوع | مطلوب |
---|---|
دالة (function) | لا |
onIconClicked
تٌستدعى هذه الدالة عند اختيار الرمز.
النوع | مطلوب |
---|---|
دالة (function) | لا |
overflowIcon
تحدد رمز قائمة الفيض.
النوع | مطلوب |
---|---|
مصدر الصورة (Image.propTypes.source) | لا |
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) | لا |