ReactNative/platformcolor

من موسوعة حسوب
مراجعة 23:48، 21 يونيو 2021 بواسطة Ola-abbas (نقاش | مساهمات) (أنشأ الصفحة ب'== الدالة PlatformColor == <syntaxhighlight lang="javascript"> PlatformColor(color1, [color2, ...colorN]); </syntaxhighlight>يمكنك استخدام الدالة...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الدالة PlatformColor

PlatformColor(color1, [color2, ...colorN]);

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

PlatformColor('bogusName', 'linkColor');

بما أن الألوان الأصيلة يمكن أن تكون حساسة للقوالب و / أو التباين العالي، فإن هذا المنطق الخاص بالمنصة يترجم أيضًا داخل مكوناتك.

الألوان المدعومة

اطّلع ما يلي للحصول على قائمة كاملة بأنواع ألوان الأنظمة المدعومة:

  • في نظام Android:
    • R.attr: البادئة ‎?attr
    • R.color: البادئة ‎@android:color
  • في نظام iOS (ترميزَي Objective-C و Swift):

ألوان UIColor المعيارية.

ألوان عنصر واجهة المستخدم UIColor.

ملاحظات المطور: في الويب: إن كنت على دراية بتصميم الأنظمة، فهناك طريقة أخرى للتفكير في هذا الأمر وهي أن الدالة PlatformColor تتيح لك الاستفادة من الرموز اللونية لنظام التصميم المحلي بحيث يمكن مزج تطبيقك مزجًا صحيحًا.

مثال

import React from 'react';
import {
  Platform,
  PlatformColor,
  StyleSheet,
  Text,
  View
} from 'react-native';

const App = () => (
  <View style={styles.container}>
    <Text style={styles.label}>
      I am a special label color!
    </Text>
  </View>
);

const styles = StyleSheet.create({
  label: {
    padding: 16,
    ...Platform.select({
      ios: {
        color: PlatformColor('label'),
        backgroundColor:
          PlatformColor('systemTealColor'),
      },
      android: {
        color: PlatformColor('?android:attr/textColor'),
        backgroundColor:
          PlatformColor('@android:color/holo_blue_bright'),
      },
      default: { color: 'black' }
    })
  },
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  }
});

export default App;

يجب أن تتطابق قيمة السلسلة المقدَّمة إلى الدالة PlatformColor مع السلسلة الموجودة على المنصة الأصيلة حيث يُشغَّل التطبيق. يمكن تجنب أخطاء وقت التشغيل من خلال تغليف الدالة في فحص المنصة، إما عن طريق Platform.OS === 'platform'‎ أو Platform.select()‎ كما هو موضح في المثال السابق.

ملاحظة: يمكنك العثور على مثال كامل يوضح الاستخدام الصحيح والمحدد للدالة PlatformColor في PlatformColorExample.js.

مصادر