为 React Native 应用程序创建垂直选项卡布局

在开发包含大量资源的多级站点或应用程序时,您希望用户可以轻松地从用户界面上的一个位置导航到这些不同的级别。您可以使用选项卡元素设计一个实现此目标的 UI。

在本教程中,我们将在 React Native 中从头开始创建垂直选项卡布局,使用 CSS flexbox 确保布局具有响应性并且在各种设备上看起来相似。然后我们将讨论水平和垂直选项卡布局,以及何时最好使用其中一种布局。跳跃前进:

  • 为什么要为 React Native 应用程序使用垂直标签?

  • 预览我们的垂直标签布局项目

  • 导入项目组件

  • 定义选项卡标签和内容

  • 为 React Native 选项卡元素设置功能

  • 设计我们的响应式 React Native 垂直标签布局

  • 何时使用垂直制表符与水平制表符

作为本教程的先决条件,您应该熟悉 React Native 和 CSS。RTX3080笔记本电脑GPU与台式机GPU旗舰AMPERE移动GPU的速度有多快?您还应该在 Expo Snack 上有一个入门应用程序。

为什么要为 React Native 应用程序使用垂直标签?

选项卡式界面包含一组可点击的标签卡或选项卡。集成显卡:没有显卡能玩游戏吗?通常,这些选项卡是可导航的或模块化的。导航选项卡链接到不同的页面,而模块化选项卡链接到同一页面的子部分。

扫描二维码关注公众号,回复: 14667798 查看本文章

选项卡式界面模式类似于文件柜中的选项卡式分隔线,GTA5系统要求:GTAV最佳和流畅游戏的最低和推荐PC要求在选择文件之前将内容组织成清晰的类别和子类别。就像在这个真实世界的例子中一样,用户可以通过标签标签找到他们想要访问的内容,然后点击标签查看它。

选项卡非常适合组织内容。它们让您告诉用户哪些内容属于哪个类别,如何购买合适的显卡:2023年GPU指南使他们可以轻松找到符合他们当前目的和目标的内容。这是来自 Bootstrap 站点的示例:

在表单类别下,您可以看到几个链接到页面其他部分的子类别。现在,让我们学习如何在 React Native 中创建我们自己的简单垂直选项卡菜单。

预览我们的垂直标签布局项目

在垂直选项卡布局中,选项卡在左侧垂直排列。为什么显卡有显存?每个选项卡标签对应一个相关内容块,并且一次只能激活一个选项卡。

这是最终项目的预览:

在我们继续下一节之前,您应该已经在 Expo Snack 上设置了您的入门应用程序。GTX1650与1060如果您不这样做,只需在您的网络浏览器中转到snack.expo.dev。

导入项目组件

首先删除文件中的所有代码。然后,在同一个文件中,进行以下导入:App.js

import * as React from 'react';
import { StyleSheet, View, Image, TouchableOpacity, Text, Dimension, FlatList, SafeAreaView} from 'react-native';
import {useState} from 'react'

在这里,我们导入了核心 React 库、NvidiaGeForceRTX4090台式机与笔记本电脑GPU慢了多少我们将用于构建 UI 的几个组件,以及用于管理应用程序状态的Hook 。useState

定义选项卡标签和内容

我们将使用它listTab来定义我们的选项卡标签并data定义每个标签将链接到的内容。如何从英特尔显卡切换到NvidiaWindows10笔记本电脑?请参阅下面的代码:

const listTab = [
  {
    status: 'Home'    
  },
  {
    status: 'About'    
  },
  {
    status: 'Contact'    
  },
]

// Linking content
const data = [
  {
    name: "Home content",
    text: "This is my homepage. Here I welcome you to my website and try me best to make a good impression. I tell you about the services I provide and encourage you to venture into my site.",
    status: "Home"
  },
  {
     name: "About content",
    text: "Here I go into details about myself and my business, including the services we provide, how we started and our overall ethos.",
    status: "About"
  },
  {
     name: "Contact content",
    text: "Here we give you information on how to contact us for business discussions and possible collaborations.",
    status: "Contact"
  }
]

每个内容对象都有一个status与 中的状态相匹配的属性listTab。为什么我的GPU使用率这么低?11个原因和修复这就是我们将选项卡标签链接到其相应数据的方式。

为 React Native 选项卡元素设置功能

在下一个代码块中,我们将定义App组件函数:

export default function App() {
  // the following code goes here
}

在 内部App,首先将选项卡设置Home为默认。确保dataforHome也被显示:

const [status, setStatus] = useState('Home')
    const [dataList, setDataList] = useState([...data.filter(e => e.status === 'Home')])

现在您需要一种方法来在用户单击选项卡项时激活它。集成GPU:集成显卡的优缺点我们将使用以下setStatusFilter函数来执行此操作:

const setStatusFilter = status => {
      if(status !== 'Home') {
        setDataList([...data.filter(e => e.status === status)])
      }else {
        setDataList([...data.filter(e => e.status === 'Home')])
      }

      setStatus(status)
    }

单击选项卡时执行上述功能。在函数内部,我们只需更新dataList以显示与用户单击的任何选项卡相关的内容。

接下来,我们将返回一个包含选项卡菜单和内容列表的SafeAreaView元素。笔记本电脑需要GPU吗?在第一个<View>组件中,我们将使用数组函数遍历选项卡项。对于每个项目,我们将呈现一个带有选项卡标签的元素。map()TouchableOpacity

我们还将动态地将btnTabActive类应用于活动选项卡,并setStatusFilter在用户按下元素时调用该方法来更新活动状态:

return (
      <SafeAreaView style={styles.container}>
        <View style={styles.listTab}>
          {
            listTab.map((e) => {
              return (
                <TouchableOpacity 
                  style={[styles.btnTab, status === e.status && styles.btnTabActive]}
                  onPress={() => setStatusFilter(e.status)}
                >
                  <Text style={styles.textTab, status === e.status && styles.textTabActive}>{e.status}</Text>
                </TouchableOpacity>
              )
            })
          }          
        </View>    

        <FlatList
          data={dataList}
          keyExtractor={(e,i) => i.toString()}
          renderItem={renderItem}
        />    
      </SafeAreaView>
    );
}

组件下面<View>是组件。获取与活动选项卡相关的数据,台式机NVIDIAGeForceRTX4090用作外部GPU时性能下降20%并通过调用该函数来呈现它。这是函数体:<FlatList><FlatList>renderItem

const renderItem = ({item, index}) => {
      return (
        <View key={index} style={styles.itemContainer}>                    
          <Text style = {styles.itemName}>{item.name}</Text>                     
          <Text>{item.text}</Text>
        </View>       
      )
 }

在上面的代码中,我们渲染了两个Text组件来显示与活动选项卡相关的标题和文本。

设计我们的响应式 React Native 垂直标签布局

最后,这里是负责样式化元素的样式表。CPU与GPU:有何区别?请注意,我们正在使用CSS flexbox 布局系统来实现响应式垂直选项卡布局,该布局在不同设备之间看起来相似:

const styles = StyleSheet.create({
  container: {
    flex: 1,        
    flexDirection: 'row',
    paddingHorizontal: 10,
    justifyContent: 'center'  
  },
  listTab: {
    backgroundColor: '#fff',    
    flexDirection: 'column',
    justifyContent: 'flex-start',
    marginTop: 20,    
    marginLeft: 5,    
    height: 100
  },
  btnTab: {
    width: 50,
    flexDirection: 'row',
    marginBottom: 10,
    paddingHorizontal: 15,
    paddingVertical: 10,
    justifyContent: 'center'
  },
   textTab: {
    fontSize: 16    
  },
  btnTabActive: {
    backgroundColor: 'purple',
    borderRadius: 5
  },
  textTabActive: {
    color: '#fff'
  },
  itemContainer: {    
    justifyContent: 'flex-end',
    paddingVertical: 15,
    marginLeft: 30,
    marginTop: 10
  },
  itemName: {
    fontWeight: 'bold',
    fontSize: 20,
    marginBottom: 5
  },
});

就是这样!您现在有一个可用的导航选项卡。如何在Windows10中检查显卡当你点击一个标签时,它对应的内容会显示在右边,如下图:

我们提到有两种选项卡布局——垂直和水平。让我们进一步了解它们中的每一个。

何时使用垂直制表符与水平制表符

垂直标签,通常称为侧边栏,是放置在页面及其主要内容两侧的链接列表。另一方面,水平选项卡布局位于页面顶部。您可以将其设置为粘性,[主板]如何开启iGPUMulti-Monitor双屏显示以便无论您在页面上的何处导航,它都会出现。

下面,您可以看到出现在屏幕左侧的垂直选项卡元素和出现在屏幕顶部的水平选项卡元素之间的区别:

在构建网站或应用程序的用户界面时,您首先需要决定是使用垂直还是水平标签布局来进行网站导航。那么什么时候应该使用一个呢?

这一切都归结为可用空间。USB-C与Thunderbolt3之间有何区别?在垂直选项卡布局中,选项卡和内容共享相同的水平空间,这意味着您的内容空间有限。除非您的意图是在用户浏览您的内容时吸引他们的注意力,否则垂直标签可能不是一个好主意。

垂直标签最适合在大屏幕上使用。我有什么显卡?例如,当屏幕足够大以包含选项卡和主要内容时,您可以使用媒体查询应用垂直选项卡布局,然后在较小的屏幕上切换到水平布局以释放更多空间用于内容。

结论

我希望本教程能帮助您更好地理解垂直和水平制表符。您现在应该能够使用我们在本文中介绍的技术在 React Native 应用程序中从头开始构建导航选项卡。

如果您对此主题有任何疑问,请发表评论,我会尽快回复。祝你度过愉快的一周!

猜你喜欢

转载自blog.csdn.net/weixin_47967031/article/details/129917700
今日推荐