带有Flex尺寸的View内部按钮的文本被截断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有Flex尺寸的View内部按钮的文本被截断相关的知识,希望对你有一定的参考价值。

我是新手一般的反应本机和移动应用程序开发,我正在尝试为我的应用程序创建一个标题,其中包含Text和Button。

这是我的代码:

    import React from 'react';
    import { StyleSheet, Text, View, Button } from 'react-native';

    export default class App extends React.Component {

      _leaveSheet() {

      }

      render() {
        return (
          <View style={styles.container}>
            <View style={styles.header}>
              <Text allowFontScaling={false} style={styles.titleText}>YATHZEE</Text>
              <Button style={styles.leaveButton} title="Quitter" onPress={this._leaveSheet}/>
            </View>
            <View style={styles.body}></View>
          </View>
        );
      }
    }

    const styles = StyleSheet.create({
      container: {
        flex: 1,
        flexDirection: 'column'
      },
      header: {
        flex: 1,
        backgroundColor: '#BDBDBD',
        flexDirection: 'row',
        alignItems: 'center',
        justifyContent: 'space-between'
      },
      body: {
        flex: 10,
        backgroundColor: 'white'
      },
      titleText: {
        // fontSize: 30,
        fontWeight: 'bold',
        backgroundColor: 'yellow',
        // alignSelf: 'center',
        flex: 1
      },
      leaveButton: {
        // alignSelf: 'center',
        // width: '100'
        flex: 2
      }
    });

所以我将带有flexDirection的标题放到行中,然后在我的View my Text和我的Button元素中添加了flex:1和flex:2,所以我期待这个结果:

Expected result

但相反,我有这个:Button中的文本被截断,我的按钮不占用他应该占用的空间。

Rendering on the mobile App (OP3 phone)

我尝试使用alignSelf属性和宽度,但似乎没有任何工作。

在Facebook按钮示例中,我可以看到Button可以定义Button的宽度,但我不知道如何使其工作。

答案

你必须在一个弹性的Button中包装View才能实现它。

<View style={styles.leaveButton}>
   <Button title="Quitter" onPress={this._leaveSheet} />
</View>

来自react-native material design

按钮组件呈现可触摸按钮,消耗其父容器的整个宽度。

以上是关于带有Flex尺寸的View内部按钮的文本被截断的主要内容,如果未能解决你的问题,请参考以下文章

带有截断文本的 flex 布局的 Tailwind css

CSS 截断带有 flex-direction 列的 flexbox 父级中的文本

Flex:组合框控件的自定义项目渲染器截断文本

反应原生,当我设置图像样式时文本被截断

带有多行文本省略号的 Flexbox

Flex4 Label文本换行