javascript - 如何使加载程序在 View 上居中

标签 javascript jquery reactjs react-native

在显示该页面中的一个 View 上,我需要显示加载程序,但加载程序需要将其显示在中心。

var LoaderPositionCenter = React.createClass({
    render:function(){
       return(<View  style=   {{backgroundColor:'blue',flex:1,justifyContent:'center',alignItems:'center'}>
                <View>
                   <Text>one</Text>
                   <Text>one</Text>
                   <Text>one</Text>
                   <Text>one</Text>
                   <Text>one</Text>
                   <Text>one</Text>
                   <Text>one</Text>
                   <Text>one</Text>
              </View>
    <View style={{flex:1,justifyContent:'center',alignItems:'center',flexDirection:'row'}}>
        <Text style={{textAlign:'center',color:'yellow'}}>
           textsds dsdsdsd
        </Text>
    </View>       
   </View>)
    }
})

在第一次查看内容时,我需要将加载器显示为中心,如何使用 Flexbox 来实现它

//新的

var Example = React.createClass({
        getInitialState:function(){
            return {status:"button"}
        },
      click:function(){
          this.setState({status:"buttonText"});
      },
      render() {
        return (
          <View style={{
            flex: 1,
            justifyContent: 'center',
            alignItems: 'center',
            position:'relative',
          }}>
              <View style={{//content view
                 position:'absolute',
                 top:0,
                 left:0,
                 right:0,
                 bottom:0,
              }}>
                  <ScrollView>
                     {
                     <TouchableHighlight 
                         underlayColor="#ffa456" 
                         onPress={this.click}
                      >
                        <Text>{this.state.status}</Text>
                      </TouchableHighlight>
                      }
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                       <Text>one</Text>
                       <Text>one</Text>
                       <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                      <Text>one</Text>
                  </ScrollView>
              </View>
              <View style={{
                    flex:1,
                    alignItems:'center',
                    justifyContent:'center'
              }}>
                 <Image source={{uri:icons.loader}}
                    style=  {styles.loader}/>
               </View>
          </View>
        );
      }
    });

如何使用 Flexbox 或其他方式禁用表示位置:'绝对' View 的内容 View

最佳答案

您可以将外部容器的样式属性设置为:

flex: 1,
alignItems: 'center', 
justifyContent: 'center'

我已经建立了一个完整的项目 here ,并粘贴下面的完整代码:

https://rnplay.org/apps/Lq4G9w

'use strict';

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

var SampleApp = React.createClass({

  getInitialState: function(){
    return {
        animating: true
    }
  },

  render: function() {
    return (
      <View style={styles.container}>
       <ActivityIndicatorIOS animating={this.state.animating} style={[{height: 80}]} size="large" />
      </View>
    );
  }

});

var styles = StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center', 
    justifyContent: 'center',
    backgroundColor: '#ddd'
  },
});

AppRegistry.registerComponent('SampleApp', () => SampleApp);

关于javascript - 如何使加载程序在 View 上居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34468678/

相关文章:

javascript - 即使 props 显示正确,使用 PropTypes 进行类型检查也会出现错误

css - 如何用 CSS 包裹 React Js 组件

javascript - jQuery Cycle - #next #prev,在当前图库的最后一张幻灯片之后转到下一个图库

使用 ajax 和动态 thead 和 tbody 部分的 JQuery 表排序器

javascript - 如何创建相似的 css 类

javascript - 更新 reducer 中对象的状态

javascript - react setstate 不触发关闭 MUI 对话框

javascript - 使用 jQuery 插件时,整个页面在 IE 中打印

javascript - 为什么我的 GSP 拉入我的 AngularJS javascript 文件但不执行我的 Controller 功能?

javascript - Jquery Datepicker 在一个日历中选择多个日期范围