簡體   English   中英

react-native: 在屏幕中央顯示微調器

[英]react-native:Show spinner at the center of the screen

我想在屏幕中央顯示微調器。我使用了 alignItems、justifyContent 和 flex,但位置沒有變化,然后我使用 margintop 進行正確定位。為什么 alignItems、justifyContent 和 flex 的使用沒有變化?

我在這里使用微調器。

 return (
  <View style={style.spinnerStyle}>
  <Spinner size ="large" />
  </View>
 );
 const style = {
spinnerStyle: {
  flex: 1,
  marginTop:240
}
};

Spinner.js

  import React from 'react';
  import {View,ActivityIndicator} from 'react-native';

  const Spinner = ({size}) => {
  return (
  <View style = {styles.spinnerStyle}>
  <ActivityIndicator size={size || 'large'} />
  </View>
  );
 };

const styles = {
spinnerStyle: {
flex: 1,
justifyContent: 'center',
alignItems:'center'
 }
 };

export { Spinner };

您可以嘗試以下操作:

你在哪里使用 Spinner

spinnerStyle: {
    flex: 1,
    marginTop:240,
    justifyContent: 'center',
    alignItems:'center'
}

在微調器中

spinnerStyle: {
    flex: 1
    alignSelf:'center'
}
const styles = StyleSheet.create({
    spinnerStyle: { 
    position: 'absolute',
    left: 0,
    right: 0,
    top: 0,
    bottom: 0,
    alignItems: 'center',
    justifyContent: 'center'
 }
});

我想在屏幕中央顯示微調框。我使用alignItems,justifyContent和flex,但是位置沒有變化,所以我使用margintop進行正確定位。為什么對alignItems,justifyContent和flex的使用沒有變化?

我在這里使用微調器。

 return (
  <View style={style.spinnerStyle}>
  <Spinner size ="large" />
  </View>
 );
 const style = {
spinnerStyle: {
  flex: 1,
  marginTop:240
}
};

Spinner.js

  import React from 'react';
  import {View,ActivityIndicator} from 'react-native';

  const Spinner = ({size}) => {
  return (
  <View style = {styles.spinnerStyle}>
  <ActivityIndicator size={size || 'large'} />
  </View>
  );
 };

const styles = {
spinnerStyle: {
flex: 1,
justifyContent: 'center',
alignItems:'center'
 }
 };

export { Spinner };

將 ActivityIndi​​cator 組件垂直居中的正確方法是在 ActivityIndi​​cator 組件本身上使用 'flex: 1',而不是在其父組件上。 它不需要包裝器組件,並且根本不需要其他任何 flex 對齊樣式。

OP代碼的改進實現將是:

import React from 'react';
import {ActivityIndicator} from 'react-native';

const Spinner = ({size}) => {
  return (
    <ActivityIndicator size={size || 'large'} style={{ flex: 1 }}/>
  );
 };

export { Spinner };

在微調父視圖中設置:

justifyContent: 'center',
alignItems:'center'

在微調組中:

alignSelf:'center'   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM