الفرق بين المراجعتين لصفحة: «ReactNative/improvingux»

من موسوعة حسوب
إضافة الصّفحة
لا ملخص تعديل
سطر 10: سطر 10:
* تأكد من أن زر الإرجاع يركز على الحقل التالي أو يرسل النموذج.
* تأكد من أن زر الإرجاع يركز على الحقل التالي أو يرسل النموذج.


انظر توثيق ‎<code>TextInput</code>‎ للمزيد من الإعدادات.
انظر توثيق [[ReactNative/textinput|‎<code>TextInput</code>‎]] للمزيد من الإعدادات.


[https://facebook.github.io/react-native/img/textinput.mp4 مثال]
[https://facebook.github.io/react-native/img/textinput.mp4 مثال]


==إدارة التخطيط عندما تكون لوحة المفاتيح مرئية==
==إدارة التخطيط عندما تكون لوحة المفاتيح مرئية==
تأخذ لوحة المفاتيح نصف الشاشة تقريبًا. إذا كانت لديك عناصر تفاعلية يمكن للوحة المفاتيح أن تغطيها، فتأكد من إمكانية الوصول إليها من خلال استخدام المكون KeyboardAvoidingView.
تأخذ لوحة المفاتيح نصف الشاشة تقريبًا. إذا كانت لديك عناصر تفاعلية يمكن للوحة المفاتيح أن تغطيها، فتأكد من إمكانية الوصول إليها من خلال استخدام المكون <code>[[ReactNative/keyboardavoidingview|KeyboardAvoidingView]]</code>.


[https://facebook.github.io/react-native/img/keyboardavoidingview.mp4 مثال]
[https://facebook.github.io/react-native/img/keyboardavoidingview.mp4 مثال]


==كبر المناطق القابلة للنقر==
==كبر المناطق القابلة للنقر==
من الصعب الضغط بدقّة على الأزرار في الهواتف المحمولة. تأكد من أن جميع العناصر التفاعلية ذات أبعاد 44 × 44 أو أكبر. إحدى الطرق للقيام بذلك هي بترك مساحة كافية للعنصر وزيادة الحشو (‎<code>padding</code>‎) وباستخدام الخاصيتين minWidth و minHeight. وكبديل، يمكنك استخدام الخاصيّة hitSlop لزيادة المساحة التفاعلية دون التأثير على التنسيق. إليك عرضًا توضيحيًا:
من الصعب الضغط بدقّة على الأزرار في الهواتف المحمولة. تأكد من أن جميع العناصر التفاعلية ذات أبعاد 44 × 44 أو أكبر. إحدى الطرق للقيام بذلك هي بترك مساحة كافية للعنصر وزيادة الحشو (‎<code>padding</code>‎) وباستخدام الخاصيتين <code>minWidth</code> و <code>minHeight</code>. وكبديل، يمكنك استخدام الخاصيّة <code>[[ReactNative/touchablewithoutfeedback|hitSlop]]</code> لزيادة المساحة التفاعلية دون التأثير على التنسيق. إليك عرضًا توضيحيًا:


[https://facebook.github.io/react-native/img/hitslop.mp4 مثال]
[https://facebook.github.io/react-native/img/hitslop.mp4 مثال]
==استخدم تموجات Android==
==استخدم تموجات Android==
تستخدم واجهة ‎Android API 21‎+‎ تموجاتٍ لتزويد المستخدم باستجابة عندما يلمس منطقة قابلة للتفاعل على الشاشة. يوفر إطار React Native هذه الميّزة من خلال المكون TouchableNativeFeedback. سيؤدي استخدام هذا التأثير بدلاً من العتامة أو التمييز إلى زيادة ملاءمة التطبيق مع المنصّة. لكن احذر عند استخدام هذه الميّزة لأنها لا تعمل على نظام iOS أو على واجهات Android البرمجيّة الأقدم من النسخة 21، لذا ستحتاج إلى أحد المكونات الأخرى القابلة لللمس على iOS كحل يمكن الرجوع إليه (fallback). يمكنك استخدام مكتبةٍ مثل [https://github.com/react-community/react-native-platform-touchable react-native-platform-touchable] للتعامل مع الاختلافات بين المنصّات.
تستخدم واجهة ‎Android API 21‎+‎ تموجاتٍ لتزويد المستخدم باستجابة عندما يلمس منطقة قابلة للتفاعل على الشاشة. يوفر إطار React Native هذه الميّزة من خلال المكون <code>[[ReactNative/touchablenativefeedback|TouchableNativeFeedback]]</code>. سيؤدي استخدام هذا التأثير بدلاً من العتامة أو التمييز إلى زيادة ملاءمة التطبيق مع المنصّة. لكن احذر عند استخدام هذه الميّزة لأنها لا تعمل على نظام iOS أو على واجهات Android البرمجيّة الأقدم من النسخة 21، لذا ستحتاج إلى أحد المكونات الأخرى القابلة لللمس على iOS كحل يمكن الرجوع إليه (fallback). يمكنك استخدام مكتبةٍ مثل [https://github.com/react-community/react-native-platform-touchable react-native-platform-touchable] للتعامل مع الاختلافات بين المنصّات.
 
[https://facebook.github.io/react-native/img/ripple.mp4 مثال]
[https://facebook.github.io/react-native/img/ripple.mp4 مثال]
==قفل اتجاه الشاشة==
==قفل اتجاه الشاشة==
تعمل اتجاهات الشاشة المتعددة بشكل سليم افتراضيًّا إلا إذا كنت تستخدم واجهة Dimensions البرمجيّة ولا تتعامل مع تغييرات الاتجاه. إذا لم ترغب بدعم اتجاهات شاشة متعددة، فيمكنك قفل اتجاه الشاشة إما عموديًّا أو أفقيًّا.
تعمل اتجاهات الشاشة المتعددة بشكل سليم افتراضيًّا إلا إذا كنت تستخدم واجهة <code>[[ReactNative/dimensions|Dimensions]]</code> البرمجيّة ولا تتعامل مع تغييرات الاتجاه. إذا لم ترغب بدعم اتجاهات شاشة متعددة، فيمكنك قفل اتجاه الشاشة إما عموديًّا أو أفقيًّا.


على نظام التشغيل iOS، في علامة التبويب عام (General) وقسم معلومات النشر (Deployment Info) في Xcode، يمكنك تمكين اتجاه الجهاز (Device Orientation) الذي تريد دعمه (تأكد من تحديد iPhone من قائمة الأجهزة عند إجراء التغييرات).
على نظام التشغيل iOS، في علامة التبويب عام (General) وقسم معلومات النشر (Deployment Info) في Xcode، يمكنك تمكين اتجاه الجهاز (Device Orientation) الذي تريد دعمه (تأكد من تحديد iPhone من قائمة الأجهزة عند إجراء التغييرات).


على Android ، افتح ملف AndroidManifest.xml وداخل عنصر activity element، أضف ‎<code>'android:screenOrientation="portrait"'</code>‎ للقفل إلى الوضع الرأسي أو ‎<code>'android:screenOrientation="landscape"'</code>‎ للقفل إلى الوضع الأفقي.
على Android، افتح ملف <code>AndroidManifest.xml</code> وداخل عنصر activity element، أضف ‎<code>'android:screenOrientation="portrait"'</code>‎ للقفل إلى الوضع الرأسي أو ‎<code>'android:screenOrientation="landscape"'</code>‎ للقفل إلى الوضع الأفقي.


==المزيد==
==المزيد==

مراجعة 15:26، 4 فبراير 2019


إعداد مدخلات النص

إدخال النصوص على الهواتف الذكية صعب، الشاشة صغيرة، ولوحة المفاتيح وهميّة. لكن يُمكنك تسهيل العمليّة حسب نوع البيانات التي تحتاج إليها عبر الإعداد الصّحيح لحقول الإدخال:

  • ركّز على الحقل الأول تلقائيًا.
  • استخدم نصًّا نائبًا (placeholder) كمثال لنوع البيانات المتوقع.
  • تفعيل أو تعطيل خدمتي تكبير الأحرف التلقائي (autocapitalization) والتصحيح التلقائي(autocorrect).
  • اختيار نوع لوحة المفاتيح (كلوحة خاصّة بالبريد الإلكتروني، أو لوحة مفاتيح أرقام).
  • تأكد من أن زر الإرجاع يركز على الحقل التالي أو يرسل النموذج.

انظر توثيق TextInput للمزيد من الإعدادات.

مثال

إدارة التخطيط عندما تكون لوحة المفاتيح مرئية

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

مثال

كبر المناطق القابلة للنقر

من الصعب الضغط بدقّة على الأزرار في الهواتف المحمولة. تأكد من أن جميع العناصر التفاعلية ذات أبعاد 44 × 44 أو أكبر. إحدى الطرق للقيام بذلك هي بترك مساحة كافية للعنصر وزيادة الحشو (‎padding‎) وباستخدام الخاصيتين minWidth و minHeight. وكبديل، يمكنك استخدام الخاصيّة hitSlop لزيادة المساحة التفاعلية دون التأثير على التنسيق. إليك عرضًا توضيحيًا:

مثال

استخدم تموجات Android

تستخدم واجهة ‎Android API 21‎+‎ تموجاتٍ لتزويد المستخدم باستجابة عندما يلمس منطقة قابلة للتفاعل على الشاشة. يوفر إطار React Native هذه الميّزة من خلال المكون TouchableNativeFeedback. سيؤدي استخدام هذا التأثير بدلاً من العتامة أو التمييز إلى زيادة ملاءمة التطبيق مع المنصّة. لكن احذر عند استخدام هذه الميّزة لأنها لا تعمل على نظام iOS أو على واجهات Android البرمجيّة الأقدم من النسخة 21، لذا ستحتاج إلى أحد المكونات الأخرى القابلة لللمس على iOS كحل يمكن الرجوع إليه (fallback). يمكنك استخدام مكتبةٍ مثل react-native-platform-touchable للتعامل مع الاختلافات بين المنصّات.

مثال

قفل اتجاه الشاشة

تعمل اتجاهات الشاشة المتعددة بشكل سليم افتراضيًّا إلا إذا كنت تستخدم واجهة Dimensions البرمجيّة ولا تتعامل مع تغييرات الاتجاه. إذا لم ترغب بدعم اتجاهات شاشة متعددة، فيمكنك قفل اتجاه الشاشة إما عموديًّا أو أفقيًّا.

على نظام التشغيل iOS، في علامة التبويب عام (General) وقسم معلومات النشر (Deployment Info) في Xcode، يمكنك تمكين اتجاه الجهاز (Device Orientation) الذي تريد دعمه (تأكد من تحديد iPhone من قائمة الأجهزة عند إجراء التغييرات).

على Android، افتح ملف AndroidManifest.xml وداخل عنصر activity element، أضف ‎'android:screenOrientation="portrait"'‎ للقفل إلى الوضع الرأسي أو ‎'android:screenOrientation="landscape"'‎ للقفل إلى الوضع الأفقي.

المزيد

انظر Material Design وHuman Interface Guidelines لتعلم المزيد حول تصميم تطبيقات الجوّال.

مصادر