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

من موسوعة حسوب
إضافة الصّفحة
 
طلا ملخص تعديل
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: KeyboardAvoidingView في React Native}}</noinclude>
<noinclude>{{DISPLAYTITLE:المكون KeyboardAvoidingView في React Native}}</noinclude>
مكوّنٌ لحل مشكلة العروض التي تحتاج للنّقل بعيدا عن لوحة المفاتيح الوهميّة. يمكن للمكوّن ضبط ارتفاعه أو موضعه أو حشوته السفلية (bottom padding) تلقائيًا بناءً على موقع لوحة المفاتيح.
يُستعمل هذا المكوّنٌ لحل مشكلة الواجهات التي تحتاج للنّقل بعيدا عن لوحة المفاتيح الوهميّة. يمكن للمكوّن ضبط ارتفاعه أو موضعه أو حاشيته السفلية (bottom padding) تلقائيًا بناءً على موقع لوحة المفاتيح.


==مثال==
==مثال==
<syntaxhighlight lang="javascript">
إليك المثال التالي ([https://snack.expo.dev/@hsoubwiki/keyboardavoidingview تجربة حية]):<syntaxhighlight lang="javascript">
import {KeyboardAvoidingView} from 'react-native';
import React from 'react';
import { View, KeyboardAvoidingView, TextInput, StyleSheet, Text, Platform, TouchableWithoutFeedback, Button, Keyboard  } from 'react-native';


<KeyboardAvoidingView style={styles.container} behavior="padding" enabled>
const KeyboardAvoidingComponent = () => {
  ... your UI ...
  return (
</KeyboardAvoidingView>;
    <KeyboardAvoidingView
      behavior={Platform.OS === "ios" ? "padding" : "height"}
      style={styles.container}
    >
      <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
        <View style={styles.inner}>
          <Text style={styles.header}>Header</Text>
          <TextInput placeholder="Username" style={styles.textInput} />
          <View style={styles.btnContainer}>
            <Button title="Submit" onPress={() => null} />
          </View>
        </View>
      </TouchableWithoutFeedback>
    </KeyboardAvoidingView>
  );
};
 
const styles = StyleSheet.create({
  container: {
    flex: 1
  },
  inner: {
    padding: 24,
    flex: 1,
    justifyContent: "space-around"
  },
  header: {
    fontSize: 36,
    marginBottom: 48
  },
  textInput: {
    height: 40,
    borderColor: "#000000",
    borderBottomWidth: 1,
    marginBottom: 36
  },
  btnContainer: {
    backgroundColor: "white",
    marginTop: 12
  }
});
 
export default KeyboardAvoidingComponent;
</syntaxhighlight>
</syntaxhighlight>
[example.gif]
== مرجع ==
== الخاصيات ==
== الخاصيات ==
يرث خاصيّات المكوّن View.
يرث خاصيّات المكوّن <code>[[ReactNative/view|View]]</code>.


===‎‎<code>behavior</code>‎‎===
===‎‎<code>behavior</code>‎‎===
سطر 24: سطر 64:
!مطلوب
!مطلوب
|-
|-
|enum('height', 'position', 'padding')
|<code>('height', 'position', 'padding')</code>
|لا
|لا
|}
|}
سطر 35: سطر 75:
!مطلوب
!مطلوب
|-
|-
|View.style
|[[ReactNative/view style props|View.style]]
|لا
|لا
|}
|}
===‎‎<code>enabled</code>‎‎===
===‎‎<code>enabled</code>‎‎===
تفعيل أو تعطيل مكوّن KeyboardAvoidingView، القيمة الافتراضيّة هي true.
تفعيل أو تعطيل مكوّن <code>KeyboardAvoidingView</code>، القيمة الافتراضيّة هي <code>true</code>.
{| class="wikitable"
{| class="wikitable"
!النوع
!النوع
سطر 48: سطر 88:
|}
|}
===‎‎<code>keyboardVerticalOffset</code>‎‎===
===‎‎<code>keyboardVerticalOffset</code>‎‎===
هذه هي المسافة بين الجزء العلوي من شاشة المستخدم وعرض react native، قد تكون غير صفرية (non-zero) في بعض حالات الاستخدام. القيمة الافتراضية هي 0.
هذه هي المسافة بين الجزء العلوي من شاشة المستخدم وعرض react native، قد تكون غير صفرية (non-zero) في بعض حالات الاستخدام. القيمة الافتراضية هي <code>0</code>.


[[تصنيف:ReactNative]]
{| class="wikitable"
{| class="wikitable"
!النوع
!النوع
سطر 59: سطر 100:


== مصادر ==
== مصادر ==
* [https://facebook.github.io/react-native/docs/keyboardavoidingview صفحة KeyboardAvoidingView في توثيق React Native الرسمي.]
* [https://reactnative.dev/docs/keyboardavoidingview صفحة KeyboardAvoidingView في توثيق React Native الرسمي.]
[[تصنيف:ReactNative]]
[[تصنيف:ReactNative]]
[[تصنيف:React Native Component]]

المراجعة الحالية بتاريخ 14:01، 9 أكتوبر 2021

يُستعمل هذا المكوّنٌ لحل مشكلة الواجهات التي تحتاج للنّقل بعيدا عن لوحة المفاتيح الوهميّة. يمكن للمكوّن ضبط ارتفاعه أو موضعه أو حاشيته السفلية (bottom padding) تلقائيًا بناءً على موقع لوحة المفاتيح.

مثال

إليك المثال التالي (تجربة حية):

import React from 'react';
import { View, KeyboardAvoidingView, TextInput, StyleSheet, Text, Platform, TouchableWithoutFeedback, Button, Keyboard  } from 'react-native';

const KeyboardAvoidingComponent = () => {
  return (
    <KeyboardAvoidingView
      behavior={Platform.OS === "ios" ? "padding" : "height"}
      style={styles.container}
    >
      <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
        <View style={styles.inner}>
          <Text style={styles.header}>Header</Text>
          <TextInput placeholder="Username" style={styles.textInput} />
          <View style={styles.btnContainer}>
            <Button title="Submit" onPress={() => null} />
          </View>
        </View>
      </TouchableWithoutFeedback>
    </KeyboardAvoidingView>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1
  },
  inner: {
    padding: 24,
    flex: 1,
    justifyContent: "space-around"
  },
  header: {
    fontSize: 36,
    marginBottom: 48
  },
  textInput: {
    height: 40,
    borderColor: "#000000",
    borderBottomWidth: 1,
    marginBottom: 36
  },
  btnContainer: {
    backgroundColor: "white",
    marginTop: 12
  }
});

export default KeyboardAvoidingComponent;

الخاصيات

يرث خاصيّات المكوّن View.

‎‎behavior‎‎

حدّد كيفية التفاعل مع وجود لوحة المفاتيح.

ملاحظة: يتفاعل كل من Android و iOS مع هذه الخاصية بشكل مختلف. قد يتصرف Android بشكل أفضل عند عدم تعيين خاصيّة behavior، في حين يتصرف iOS عكس ذلك.

النوع مطلوب
('height', 'position', 'padding') لا

‎‎contentContainerStyle‎‎

نمط عرض حاوية المحتوى (content container) عندما تكون قيمة الخاصيّة behavior القيمةَ 'position'.

النوع مطلوب
View.style لا

‎‎enabled‎‎

تفعيل أو تعطيل مكوّن KeyboardAvoidingView، القيمة الافتراضيّة هي true.

النوع مطلوب
قيمة منطقيّة لا

‎‎keyboardVerticalOffset‎‎

هذه هي المسافة بين الجزء العلوي من شاشة المستخدم وعرض react native، قد تكون غير صفرية (non-zero) في بعض حالات الاستخدام. القيمة الافتراضية هي 0.

النوع مطلوب
عدد لا

مصادر