【问题标题】:Right is Left on React NativeReact Native 上的右为左
【发布时间】:2018-04-17 21:32:56
【问题描述】:

试图在 renderRow 中显示一个列表项。 我已经在我的项目as defined on react native documentation 中实现了 RTL,并且我对console.log(I18nManager.isRTL ? 'yes' : 'no') 持肯定态度。
我正在尝试展示一个设计好的表格单元格,所以它是一个图像,我试图在其上布置我的项目。 所以 logo 是这样定义的:

var styles = StyleSheet.create({
  logo:{
    position: 'absolute',
    top:11,
    right:11,
    width: 26,
    height: 26
  }
  frame: {
    flex: 1,
    flexDirection:  'row',
    margin: 5,
  },


txtFirstName:{
    position:'absolute',
    top:7,
    right:40,
    marginRight:36,
    color:'white',
    fontSize:PixelRatio.get()*4/PixelRatio.getFontScale(),
    fontWeight:'bold',
    textAlign:'right',
    textShadowColor: 'black',
    textShadowOffset: {width:2,height:2},
    writingDirection : 'rtl'
  },

txtSecondName:{
    position:'absolute',
    top:17,
    right:40,
    marginRight:36,
    color:'white',
    fontSize:PixelRatio.get()*3/PixelRatio.getFontScale(),
    fontWeight:'bold',
    textAlign:'right',
    textShadowColor: 'black',
    textShadowOffset: {width:2,height:2},
    writingDirection : 'rtl'
  },

txtMainText:{
    position:'absolute',
    marginRight:36,
    color:'white',
    fontWeight:'bold',
    textAlign:'right',
    textShadowColor: 'black',
    textShadowOffset: {width:2,height:2},
    writingDirection : 'rtl',
    fontSize:PixelRatio.getPixelSizeForLayoutSize(3),
  },

});

  renderRow(rowData, sectionID, rowID) {
    return(
    <TouchableOpacity onPress={()=>this.showBusiness(rowData)}>
      <View style={{flex:1}}>
        <Image style={styles.logo} resizeMode = 'cover' source=}require('../images/logo.png’){/>
        <Image source={require('../images/mainFrame.png’){ style={styles.frame}/>
    <Text style={[styles.txtMainText,styles.txtFirstName]}>
      טקסט
    </Text>
    <Text style={[styles.txtMainText,styles.txtSecondName]}>
      מיושר לימין
    </Text>

      </View>
    </TouchableOpacity>
  );
  }

结果令人失望。

应该如下所示:

现在是这样的:

最让我困扰的是它曾经看起来还不错,我不知道是什么把它弄成这样。

此外,当应用启动时,“正在加载”文本会显示在窗口右侧。

【问题讨论】:

    标签: android css react-native flexbox react-native-flexbox


    【解决方案1】:

    根据文档:“我们将左侧/右侧样式从 JS 端映射到开始/结束,RTL 布局的所有左侧代码在屏幕上变为“右侧”,代码右侧在屏幕上变为“左侧” ."...您是否考虑过使用左而不是右来定位?或者,考虑使用 flex-start 或 flex-end 来获得所需的结果。

    【讨论】:

    • 您如何处理大量文本?它们向左而不是向右。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2022-11-17
    • 2018-01-24
    • 2017-02-05
    • 2017-12-31
    • 2022-12-21
    相关资源
    最近更新 更多