📜  如何在屏幕上居中查看组件?

📅  最后修改于: 2022-05-13 01:56:42.285000             🧑  作者: Mango

如何在屏幕上居中查看组件?

视图组件是创建用户界面的基本构建块。它可以直接映射到不同平台的原生视图,如 UIView、

、android.view 等。View 组件可以由嵌套的 View 组件以及其他原生组件(子组件)组成。

方法:为了使 View 组件在屏幕上居中,我们可以使用两种方法:

  • 使用 flexbox:这是用于居中任何组件/元素的最常用方法。引入 flexbox 模型是为了创建响应式布局,而不使用浮动或定位属性。要使用 flexbox 使任何组件居中,我们只需将 flex 属性以及 justifyAlign 和 alignItems 属性设置为 1。
  • 使用 CSS 位置属性:位置属性在 React Native 中用于使任何组件居中的应用较少。位置属性的值设置为“绝对”,以确保它相对于最近的祖先定位。然后,将 top、bottom、left 和 right 属性设置为 0,同时将 justifyAlign 和 alignItems 属性设置为“center”。

示例:让我们通过示例来看看如何使用上述方法使 View 组件在屏幕上居中:

  • 第 1 步:打开终端并通过以下命令安装 expo-cli。

    npm install -g expo-cli

  • 第2步:现在通过以下命令创建一个项目。

    expo init demo-app
  • 第 3 步:现在进入您的项目文件夹,即 demo-app

    cd demo-app

项目结构:项目目录应如下所示:

示例 1:使用弹性盒
我们将使用带有嵌套文本组件的单个视图组件作为其子组件。为了使 View 组件居中,我们将使用设置为 1 的 flex 属性以及 justifyAlign 和 alignItems 属性(两者都设置为 center,因为 View 组件需要在屏幕上居中)。

App.js
import React from "react";
import { View, Text, StyleSheet } from "react-native";
  
export default function App() {
  return (
    
      Center a View Component
      Using Flexbox
    
  );
}
  
const styles = StyleSheet.create({
  centered: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#ffc2c2",
  },
  title: {
    fontSize: 18,
    marginVertical: 2,
  },
  subtitle: {
    fontSize: 14,
    color: "#888",
  },
});


App.js
import React from "react";
import { View, Text, StyleSheet } from "react-native";
  
export default function App() {
  return (
    
      Center a View Component
      Using CSS Position property
    
  );
}
  
const styles = StyleSheet.create({
  centered: {
    position: "absolute",
    top: 0,
    left: 0,
    right: 0,
    bottom: 0,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#ffc2c2",
  },
  title: {
    fontSize: 18,
    marginVertical: 2,
  },
  subtitle: {
    fontSize: 14,
    color: "#888",
  },
});


运行应用程序的步骤:使用以下命令启动服务器:

expo start

输出:

示例 2:使用 CSS 位置属性
我们将使用带有嵌套文本组件的单个视图组件作为其子组件。为了使我们的 View 组件居中,我们将使用 position 属性,该属性设置为 absolute。我们还将使用 top、bottom、left 和 right 值并将它们设置为 0(因为 View 组件需要在屏幕上居中) 和之前一样,我们还需要将 justifyAlign 和 alignItems 属性的值设置为 center .

应用程序.js

import React from "react";
import { View, Text, StyleSheet } from "react-native";
  
export default function App() {
  return (
    
      Center a View Component
      Using CSS Position property
    
  );
}
  
const styles = StyleSheet.create({
  centered: {
    position: "absolute",
    top: 0,
    left: 0,
    right: 0,
    bottom: 0,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#ffc2c2",
  },
  title: {
    fontSize: 18,
    marginVertical: 2,
  },
  subtitle: {
    fontSize: 14,
    color: "#888",
  },
});

运行应用程序的步骤:使用以下命令启动服务器:

expo start

输出: