3

试图在 renderRow 中显示一个列表项。我已经在我的项目中实现了 RTL,正如 react native 文档中所定义的那样,我对console.log(I18nManager.isRTL ? 'yes' : 'no').
我正在尝试展示一个设计好的表格单元格,所以它是一个图像,我正在尝试在其上布置我的项目。所以标志是这样定义的:

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>
  );
  }

结果令人失望。

应该是这样的: 在此处输入图像描述

现在是这样的: 在此处输入图像描述

最困扰我的是它过去看起来还不错,我不确定是什么把它弄成这样。

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

4

1 回答 1

1

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

于 2017-11-05T19:03:55.667 回答