当前位置: 首页 > 知识库问答 >
问题:

对齐项:中心防止React Native中的弹性行文本换行

洪飞驰
2023-03-14

由于某些原因,在容器视图的样式中设置alignItems:center会导致flex行中的文本停止换行,并且不遵守容器视图的填充

这里的工作示例和代码:https://rnplay.org/apps/FsDXuQ

我尝试按照建议将flexDirection设置为列,使用flex: 1或flexWap,但唯一有效的是从容器视图中删除对齐项:中心

我不明白这是怎么回事。如果我想:

  1. 不占屏幕全宽的行元素
  2. 居中,
  3. 其中包含长文本,
  4. 哪个包裹

谢谢。

共有3个答案

汪天宇
2023-03-14

我自己一直在搜索来解决这个问题:

textStyle: {
    textAlign: 'center',
}

本文提供:http://moduscreate.com/aligning-children-using-flexbox-in-react-native/

去掉直接父级中的任何对齐项以允许flexWap发生。

梁丘钊
2023-03-14

我们在我的公司也遇到了同样的问题,据我所知,没有什么非黑客的方法可以绕过它。

我们处理它的方法是从主容器中完全删除alignItems属性,并给容器一个flex:1属性。然后,我们使用alignItems:“居中”到我们需要的任何子组件,而不将样式传播到所有子组件。

我在这里建立了一个例子,并粘贴了下面的代码。

'use strict';

var React = require('react-native');
var {
  AppRegistry,
  Image,
  StyleSheet,
  Text,
  View,
  Dimensions
} = React;

var width = Dimensions.get('window').width

var shortText = "Lorem ipsum dolor sit amet, consectetur adipis.";
var longText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sollicitudin ligula ut leo dictum, id elementum sapien faucibus. Nullam et feugiat neque";

var SampleApp = React.createClass({ 
  render: function() {
    return (
      <View style={styles.container}>
        <View style={ styles.alignCenter }>
            <Text>{shortText}</Text>
             </View>
        <Text/>
        <View style={{ flexDirection: 'row', flexWrap: 'wrap' }}>
          <Image source={{uri: "http://icons.iconarchive.com/icons/designbolts/free-male-avatars/128/Male-Avatar-icon.png"}} style={{height: 32, width: 32}}/>
          <View style={{ flex:1 }}>
          <Text >{longText}</Text>
          </View>
        </View>
       </View>
    );
  }
});

var styles = StyleSheet.create({
    container: {
    padding: 30,
    marginTop: 65,
    flexWrap: 'wrap',
    flex:1
    },
  alignCenter: {
    alignItems: 'center'
  }
})

AppRegistry.registerComponent('SampleApp', () => SampleApp);
东门修能
2023-03-14

使用flex属性。例如。

 类似资料:
  • 我有一个元素,它被包装在较小的屏幕中,如何使用CSS使包装的文本对齐自己? 这就是我想要的

  • 我有一个TextView的布局/对齐问题,但我还没有找到解决方法,即我想在TextView中水平对齐偏离中心的文本。 为了提供更多的上下文,我将ImageView和TextView并排使用,ImageView接触屏幕的左边缘,TextView水平填充屏幕的其余部分,如下所示: TextView被配置为singleline=“true”和maxlines=“1”,这样,如果它的水平空间太长,就会被截

  • 问题内容: 我有一个具有以下属性的flex容器(蓝色正方形): 因此,其子项(浅蓝色方块)如下所示排列它们自己。但是,我想从正常流程中添加另一个孩子(绿色正方形)并将其相对于其父对象放置。要将其定位在下面,如您所见,我最好编写类似bottom: 20px;和的内容margin: auto;。 我试着z-index无济于事。我应该如何处理?我应该使用另一个父元素吗? 问题答案: 以下是实现此布局的五

  • 问题内容: 我将以下布局考虑在内。每个列表项由两列表示。第二列应占用所有可用空间,但 如果第一列占用太多空间,则应以最小大小将其固定在右侧。第一栏应显示省略号。 问题在最后一种情况下发生。当第一列包含太多文本时,它没有显示省略号,而是将其自身拉伸到弹性框之外,从而导致出现水平滚动条,而第二列则没有锚定在右侧。 问题答案: 更新 添加有效的代码: 原始答案/解释。W3C规范说:“ 默认情况下,弹性项

  • 我有以下的布局在脑海中的一个列表。每个列表项由两列表示。第二列应该占用所有可用空间,但是如果第一列占用太多空间,它应该以最小大小固定在右边。然后,第一列应显示省略号。 问题发生在最后一个案例中。当第一列包含太多文本时,它不会显示省略号,而是将自身从flexbox中伸出,从而显示水平滚动条,而第二列不会定位到右侧。 我想让它呈现如下(模型): 我怎样才能做到这一点? 这是提琴样品。

  • 问题内容: 我的页面中有一个表格,我使用colgroups以相同的方式设置此列中的所有单元格的格式,对背景颜色和所有颜色均适用。但似乎无法弄清为什么文本对齐中心不起作用。它不会使文本居中对齐。 例: CSS: 问题答案: 只有有限的CSS属性集适用于column,而不是其中之一。 有关这种情况的说明,请参见“为什么只有四个属性应用于表列的奥秘”。 在您的简单示例中,最简单的解决方法是添加以下规则: