加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – 当Android上的位置绝对时,React Native – View

发布时间:2020-12-15 05:07:42 所属栏目:百科 来源:网络整理
导读:每当我为这个视图制作’绝对’的位置风格时,它就会消失.我不知道为什么会这样. import React,{ Component } from 'react';import { Text,View,Image,TouchableOpacity,StyleSheet } from 'react-native';export default class App extends Component { rende
每当我为这个视图制作’绝对’的位置风格时,它就会消失.我不知道为什么会这样.
import React,{ Component } from 'react';
import { Text,View,Image,TouchableOpacity,StyleSheet } from 'react-native';

export default class App extends Component {
  render() {
    return (
      <View style={styles.mainView}>
        <View
          style={styles.parentView}>
          <TouchableOpacity
            activeOpacity={0.9}
            onPress={() => {}}>
            <View
              style={ [{position: 'absolute'},styles.textView] }>
              <Text style={styles.textViewText}>
                Just Another Cat
              </Text>
            </View>
            <Image
              style={[{position: 'absolute'},styles.imageView]}
              source={{ uri: 'https://images.pexels.com/photos/104827/cat-pet-animal-domestic-104827.jpeg' }}
            />
          </TouchableOpacity>
        </View>
      </View>
    );
  }
}
const styles = StyleSheet.create({
  mainView: { flexDirection: 'row',flex: 1 },parentView: { alignSelf: 'center',flex: 0.5,left: 10,elevation: 3,alignItems: 'flex-start' },textView: { width: 250,height: 250,opacity: 1,borderRadius: 125,backgroundColor: '#aaa034' },textViewText: { textAlign: 'center',padding: 10,color: '#ffffff',fontSize: 18,top:0,right:0,bottom:0,left:0,textAlignVertical: 'center',position: 'absolute' },imageView: { width: 250,borderColor: '#000000',borderWidth: 0.2 }
});

当我删除与styles.textView和styles.imageView一起添加的内联样式:(位置:’绝对’)时,它们都将再次可见.但是我想出于某种原因使这个位置绝对,但随后它们就消失了.我不知道为什么.有谁能解释一下?

编辑:它适用于iOS.它在android上给出了这个bug.小吃网址:https://snack.expo.io/Hy_oRrvOM

问题是TouchableOpacity的宽度和高度为零!因为它的内容是绝对的,所以你需要为其中一个子项设置(左,右,上,下)或设置TouchableOpacity本身的宽度和高度

为什么它在iOS中有效?
因为在iOS中UIView默认情况下不剪辑它的子节点,所以实际上TouchableOpacity的宽度和高度仍为零,但是孩子们溢出了,你可以看到它们,
有一面旗帜(Docs)

但在android ViewGroup中总是剪辑其子节点

如何解决这类问题?
有一些工具可以在运行时调试UI,但我认为在react-native中最简单的方法是将rootColor从根视图设置为目标视图!

所以例如在这种情况下:首先为mainView设置backgroundColor然后如果它显示,为parentView设置backgroundColor,然后为TouchableOpacity设置它,你可以看到它没有显示TouchableOpacity的backgroundColor,因为它的宽度和高度为零,每个您可以手动设置宽度和高度以确保问题

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读