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

من موسوعة حسوب
أنشأ الصفحة ب' = Shadow Props = == مثال == <syntaxhighlight lang="javascript"> import React, { useState } from "react"; import { Text, View, StyleSheet, Slider } from "react-nati...'
 
لا ملخص تعديل
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:Shadow Props في React Native}}</noinclude>
= Shadow Props =
__toc__
 
== مثال ==
== مثال ==
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
سطر 98: سطر 97:


== الخاصيّات (Props) ==
== الخاصيّات (Props) ==
هذه الخاصيّات لمنصّة iOS فقط، ويمكن استخدام [https://reactnative.dev/docs/view-style-props#elevation elevation Property] لمنصّة Android للحصول على خاصّياتٍ مماثلةٍ.
هذه الخاصيّات لمنصّة iOS فقط، ويمكن استخدام [[ReactNative/view-style-props|elevation Property]] لمنصّة Android للحصول على خاصّياتٍ مماثلةٍ.


=== <code>shadowColor</code> ===
=== <code>shadowColor</code> ===
سطر 108: سطر 107:
|-
|-
|لون
|لون
color
(color)
|لا
|لا
|iOS
|iOS
سطر 121: سطر 120:
|-
|-
|كائن
|كائن
object:{width:number,height:number}
‪‏object:<code>{width:number,height:number}</code>
|لا
|لا
|iOS
|iOS
سطر 134: سطر 133:
|-
|-
|رقم
|رقم
number
(number)
|لا
|لا
|iOS
|iOS
سطر 147: سطر 146:
|-
|-
|رقم
|رقم
number
(number)
|لا
|لا
|iOS
|iOS
سطر 155: سطر 154:


* [https://facebook.github.io/react-native/docs/shadow-props صفحة Shadow Props في توثيق React Native الرسميّ]
* [https://facebook.github.io/react-native/docs/shadow-props صفحة Shadow Props في توثيق React Native الرسميّ]
[[تصنيف:ReactNative]]

مراجعة 05:21، 7 يناير 2021

مثال

import React, { useState } from "react";
import { Text, View, StyleSheet, Slider } from "react-native";

const ShadowPropSlider = ({ label, value, ...props }) => {
  return (
    <>
      <Text>
        {label} ({value.toFixed(2)})
      </Text>
      <Slider step={1} value={value} {...props} />
    </>
  );
}

const App = () => {
  const [shadowOffsetWidth, setShadowOffsetWidth] = useState(0);
  const [shadowOffsetHeight, setShadowOffsetHeight] = useState(0);
  const [shadowRadius, setShadowRadius] = useState(0);
  const [shadowOpacity, setShadowOpacity] = useState(0.1);

  return (
    <View style={styles.container}>
      <View
        style={[
          styles.square,
          {
            shadowOffset: {
              width: shadowOffsetWidth,
              height: -shadowOffsetHeight
            },
            shadowOpacity,
            shadowRadius
          }
        ]}
      />
      <View style={styles.controls}>
        <ShadowPropSlider
          label="shadowOffset - X"
          minimumValue={-50}
          maximumValue={50}
          value={shadowOffsetWidth}
          onValueChange={val => setShadowOffsetWidth(val)}
        />
        <ShadowPropSlider
          label="shadowOffset - Y"
          minimumValue={-50}
          maximumValue={50}
          value={shadowOffsetHeight}
          onValueChange={val => setShadowOffsetHeight(val)}
        />
        <ShadowPropSlider
          label="shadowRadius"
          minimumValue={0}
          maximumValue={100}
          value={shadowRadius}
          onValueChange={val => setShadowRadius(val)}
        />
        <ShadowPropSlider
          label="shadowOpacity"
          minimumValue={0}
          maximumValue={1}
          step={0.05}
          value={shadowOpacity}
          onValueChange={val => setShadowOpacity(val)}
        />
      </View>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "space-around",
    backgroundColor: "#ecf0f1",
    padding: 8
  },
  square: {
    alignSelf: "center",
    backgroundColor: "white",
    borderRadius: 4,
    height: 150,
    shadowColor: "black",
    width: 150
  },
  controls: {
    paddingHorizontal: 12
  }
});

export default App;

الخاصيّات (Props)

هذه الخاصيّات لمنصّة iOS فقط، ويمكن استخدام elevation Property لمنصّة Android للحصول على خاصّياتٍ مماثلةٍ.

shadowColor

تُستخدم هذه الخاصيّة لتحديد لون color الظّل الهابط (drop shadow).

النوع مطلوب المنصة
لون

(color)

لا iOS

shadowOffset

تُستخدم لتحديد إزاحة (offset) الظلّ الهابط.

النوع مطلوب المنصة
كائن

‪‏object:{width:number,height:number}

لا iOS

shadowOpacity

تُستخدم لتحديد مدى عَتْمَة الظل الهابط (مضروبًا بالعنصر alpha الخاصّ باللّون).

النوع مطلوب المنصة
رقم

(number)

لا iOS

shadowRadius

تُستخدم لتحديد نصف قطر ضبابية (blur) الظل الهابط.

النوع مطلوب المنصة
رقم

(number)

لا iOS

مصادر