【问题标题】:React Native Flex Wont Fill Width EqualReact Native Flex 不会填充宽度相等
【发布时间】:2020-12-23 08:10:59
【问题描述】:

我创建了一个自定义组件,它只是一个计数器,但有一个小样式错误。我尝试了很多东西,但我找不到任何解决方案。你能告诉我有什么问题和解决方法吗?

Mistake

我添加了 3 个可触摸的不透明度。他们有弹性: 1. 当我给它的父级提供背景颜色时,它会改变所有需要填充的区域。我需要做的是所有对象背景必须相等。

import React, { Component } from "react";
import { StyleSheet, View, Text, ViewPropTypes} from "react-native";
import { TouchableOpacity } from "react-native-gesture-handler";
import PropTypes from "prop-types";

class Counter extends Component{
    constructor(props){
        super(props);

        this.style = StyleSheet.create({
            topContainer:{
                flex:1,
                width:"100%",
                flexDirection:"column",
                alignItems:"center",
                justifyContent:"center"
            },
            topPanel:{
                flex:1,
                flexDirection:"row",
                alignItems:"center",
                justifyContent:"center",
                width:"100%",
            },
            bottomPane:{
                flex:1,
                flexDirection:"row",
                width:"100%",
                alignItems:"center",
                justifyContent:"center",
            },
            buttonStyle:{
                flex:1,
                alignItems:"center",
                justifyContent:"center",  
            },
    });
}

static propTypes  = {
    backgroundStyle : ViewPropTypes.style,
    textStyle: Text.propTypes.style,
    buttonBackground: ViewPropTypes.style,
    returnFunc: PropTypes.func,
};

/*
this.props = 
{"buttonBackground":{"backgroundColor":"#cc99ff","borderRadius":20,"margin":4},
"backgroundStyle":{"backgroundColor":"#cc99ff","borderRadius":20,"margin":4},
"textStyle":{"fontSize":25.919999999999995,"textAlign":"center","color":"#ffffff"}}
*/

render(){
    console.log("Counter:56 " , JSON.stringify(this.props));
    return(
        <View style = {this.style.topContainer}>
            <View style={[this.style.topPanel,this.props.backgroundStyle]}>
                <Text style={this.props.textStyle}>2</Text>
            </View>

            <View style={this.style.bottomPane}>
                <TouchableOpacity style={[this.style.buttonStyle,this.props.buttonBackground]}> 
                    <Text style={this.props.textStyle}>Increment</Text> 
                </TouchableOpacity>

                <TouchableOpacity style={[this.style.buttonStyle,this.props.buttonBackground]}> 
                    <Text style={this.props.textStyle}>Decrement</Text> 
                </TouchableOpacity>

                <TouchableOpacity style={[this.style.buttonStyle,this.props.buttonBackground]}>
                    <Text style={this.props.textStyle}>Save</Text>
                </TouchableOpacity>
            </View>

        </View>
    );
}
}
export default Counter;

这是该组件的所有代码。所有样式都有弹性。我不知道它为什么这样做。

感谢大家的帮助。

【问题讨论】:

  • 你还能插入backgroundStylebuttonBackground 样式吗?
  • 它们在渲染函数上方的评论部分。

标签: css reactjs react-native


【解决方案1】:

问题似乎出在react-native-gesture-handler 中的TouchableOpacity

试试react-native中的TouchableOpacity

import { StyleSheet, View, Text, ViewPropTypes, TouchableOpacity } from "react-native";

【讨论】:

  • 谢谢,我不认为这是一个进口问题。我只是自动导入。
猜你喜欢
  • 2015-12-27
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 2018-06-24
  • 2018-11-25
  • 1970-01-01
相关资源
最近更新 更多