React-native shadow не появляется

Я пытаюсь получить тень ниже моих взглядов, и из того, что я нашел в Интернете, должно быть довольно просто:

    shadowOffset: { width: 10, height: 10 },
    shadowColor: 'black',
    shadowOpacity: 1.0,

но проблема в том, что тень вообще не появляется.

Здесь мои компоненты

      <View style={styles.shadow}>
        <View style={styles.box} >
          <View style={styles.ListComponent}>
            <Text style={styles.itemText}>Livestream</Text>
          </View>
        </View>
      </View>

и в моем StyleSheet:

const styles = StyleSheet.create({
   shadow: {
   shadowOffset: { width: 10, height: 10 },
   shadowColor: 'black',
   shadowOpacity: 1.0
},

Любая причина для этого или есть что-то, что я пропустил?

Ответы

Ответ 1

Работает ли тень на МО? Android и IOS работают в React-Native. Для android он работает с высотой.

const styles = StyleSheet.create({
shadow: {
  shadowOffset: { width: 10, height: 10 },
  shadowColor: 'black',
  shadowOpacity: 1,
  elevation: 3,
  // background color must be set
  backgroundColor : "#0000" // invisible color
}

В противном случае попробуйте установить цвет фона для вашего теневого компонента :)

Ответ 2

Для iOS поднимите zIndex внешнего <View>

const styles = StyleSheet.create({  
 shadow: {  
  shadowOffset: { width: 10, height: 10 },  
  shadowColor: 'black',  
  shadowOpacity: 1,  
  elevation: 3,  
  zIndex:999,  
}  

Ответ 3

Я тоже хотел, чтобы в моем приложении для Android была тень под моим видом. Итак, хитрость, которую я нашел, была:

Для IOS:

const styles = StyleSheet.create({
    shadow: {
      shadowOffset: { width: 0, height: 2 },
      shadowColor: '#000',
      shadowOpacity: 0.2
    }
});

И для Android:

const styles = StyleSheet.create({
    shadow: {
        elevation: 5
    }
});

Если вы работаете над элементами пользовательского интерфейса, я предлагаю вам взглянуть на сайт NativeBase. Они облегчили жизнь, когда дело касается стиля.

Ответ 4

Вы можете использовать реакцию-родной-простой-теневой вид

  • Это позволяет практически идентичные тени в Android как в iOS
  • Нет необходимости использовать высоту, работает с теми же параметрами тени в iOS (shadowColor, shadowOpacity, shadowRadius, offset и т.д.), Поэтому вам не нужно писать стили тени для конкретной платформы
  • Может использоваться с полупрозрачными видами
  • Поддерживается в Android 18 и выше