reactjs react原生标题行中元素的对齐方式

46qrfjad  于 2023-01-25  发布在  React
关注(0)|答案(1)|浏览(130)

我在自己的React原生应用中有一个页眉部分,我想在其中的一行显示两个信息位、一个后退按钮图标和一些文本。我正在尝试弄清楚如何安排这些元素,以便后退按钮图标与行的整个宽度的水平左对齐。而客户端名称的文本则与该行的中心水平对齐。这意味着在右侧将只有空白。
到目前为止,我使用的一种方法感觉有点笨拙,因为它涉及到创建第三个元素,与第一个元素的比例相同,然后只是不声明Feather图标元素的名称。换句话说,这种方法之所以有效,是因为它将两个左右对齐的项之间的中心项对齐,即使是右边的项,屏幕上实际上什么都没有显示。有没有一种不那么笨拙的方法来做到这一点,即不添加第三十三个“不可见”元素?

<View style={{ width: '100%', flexDirection: 'row', justifyContent: 'space-between' }}>
  <Feather
    name='chevron-left'
    size={24}
    onPress={() => props.navigation.goBack()}
    color={styles.colors.textInverse}
    style={{ justifySelf: 'flex-start', alignSelf: 'flex-start' }}
  />
  <Text style={{ color: '#fff', fontSize: 18, alignSelf: 'center', justifySelf: 'center' }}>
    {props?.client?.firstName} {props?.client?.lastName}
  </Text>
  <Feather
    name='' // Leave this blank
    style={{ justifySelf: 'flex-end', alignSelf: 'flex-end' }}
  />
</View>
vuv7lop3

vuv7lop31#

paddingRight代替Text来平衡左边的项目。

<View style={{ width: '100%', flexDirection: 'row' }}>
  <Feather
    name='chevron-left'
    size={24}
...
  />
  <Text style={{ textAlign: 'center', flex: 1, paddingRight: 24 }}>
    ...
  </Text>
</View>

相关问题