了解 React Native 中的 Flexbox 布局

言鼎科技 2023-06-15 438

介紹

如果您從事過移動(dòng)應(yīng)用程序開發(fā)或前端開發(fā),您可能熟悉使用 flexbox 設(shè)計(jì)應(yīng)用程序。如果您不知道,請(qǐng)不要擔(dān)心。堅(jiān)持本教程直到結(jié)束;您將了解 flexbox 布局的基礎(chǔ)知識(shí)和實(shí)現(xiàn)。

讓我們繼續(xù)我們的教程:React Native 應(yīng)用程序中的 Flexbox 布局,事不宜遲。

教程目標(biāo)

首先要知道我們的教程為您準(zhǔn)備了什么。因此,這些是我們將在這篇博文中介紹的主要部分。

  • 關(guān)于 flexbox 布局的一般性討論

  • 不同的 React Native 布局

  • Flexbox 布局屬性

  • 在 React Native 應(yīng)用程序中實(shí)現(xiàn) flexbox 布局

這么多知識(shí),對(duì)吧?走向我們的第一部分。讓我們了解什么是 flexbox 并了解它的概念。

什么是 Flexbox:Flexbox 布局的基本概念

Flexible Box Module,通常稱為 flexbox,是一種處理應(yīng)用程序的一維布局的設(shè)計(jì)模型?,F(xiàn)在,這個(gè)一維布局意味著什么?很簡單,它表明 flexbox 的概念依賴于一次一個(gè)維度的布局——它可以是一行或一列。

此外,flexbox 提供了在界面項(xiàng)和強(qiáng)大的對(duì)齊功能之間分配空間的自由。Flexbox 布局通過減少應(yīng)用程序響應(yīng)問題讓開發(fā)人員的生活變得輕松。

Flexbox 布局的基本概念

Flexbox 的兩個(gè)軸

Flexbox 處理兩個(gè)軸 -

  • 主軸:由屬性 flex-direction 定義

  • 橫軸:垂直于主軸

開始和結(jié)束線

之前CSS對(duì)left-to-write的書寫方式給予了更多的重視,并將其設(shè)為默認(rèn)。但是,現(xiàn)代布局方法引入了廣泛的書寫模式。因此,它停止了文本行從文檔左上角開始到文檔右側(cè)結(jié)束的假設(shè)。

彈性容器

我們要應(yīng)用 flex 屬性的文檔區(qū)域可以說是一個(gè) flex 容器。要?jiǎng)?chuàng)建一個(gè)彈性容器,你只需要設(shè)置展示財(cái)產(chǎn)(該地區(qū)的容器)作為flex 或 inline-flex. 并且,該區(qū)域容器內(nèi)的物品將成為彈性物品。

正在尋找 React Native 開發(fā)人員來構(gòu)建高性能移動(dòng)應(yīng)用程序?
Bacancy 擁有最敬業(yè)和最熟練的開發(fā)人員。立即聯(lián)系我們并聘請(qǐng) React Native 開發(fā)人員!

React Native 布局差異

React Native 提供有限但足夠的 flexbox 布局屬性和值。主要區(qū)別是默認(rèn)情況下,所有 React Native 容器元素都是 Flex 容器。無需添加顯示:“彈性”. 它避免編寫額外的代碼。

請(qǐng)記住,父容器的子元素可以使用屬性 Flex 項(xiàng)目 - 'align-self' 進(jìn)行定位。這是應(yīng)用該屬性的示例對(duì)齊自我:彈性結(jié)束到包含子元素的 Flex 容器(最后一個(gè)框)。

了解 React Native 中的 Flexbox 布局

以下是 React 原生開發(fā)的不同默認(rèn)值,使 flexbox 更具優(yōu)勢(shì)。

了解 React Native 中的 Flexbox 布局

屬性:React Native 中的 Flexbox 布局

本節(jié)將討論可以增強(qiáng)應(yīng)用程序設(shè)計(jì)的 flexbox 屬性。

了解 React Native 中的 Flexbox 布局

React Native 示例中的 Flexbox 布局

讓我們?cè)谖覀兊?React Native 應(yīng)用程序中實(shí)現(xiàn) flexbox。

我們的演示應(yīng)用程序?qū)⒂幸粋€(gè)包含三個(gè)框的父容器:

  • 橙色盒子

  • 白盒子

  • 綠盒子。

父子容器是一個(gè)視圖組件。

了解 React Native 中的 Flexbox 布局
// 布局const App = () => {
返回 (
  <查看樣式={styles.container}>
    <View style={styles.orangeBox} />
    <View style={styles.whiteBox} />
    <View style={styles.greenBox} />
  </查看>
);};// 風(fēng)格const styles = StyleSheet.create({
容器: {
  背景顏色:'#454545',
},
橙盒:{
  寬度:80,
  身高:80,
  背景顏色:'橙色',
},
白盒:{
  寬度:80,
  身高:80,
  背景顏色:'白色',
},
綠框:{
  寬度:80,
  身高:80,
  背景顏色:'藍(lán)色',
},});

輸出

了解 React Native 中的 Flexbox 布局

反應(yīng)本機(jī) Flex

添加屬性為flex: 1后,空間被拆分成一個(gè)單獨(dú)的組;因此,我們的父容器將顯示在整個(gè)屏幕上。

了解 React Native 中的 Flexbox 布局
容器: {
  彈性:1,
  背景顏色:'#454545',
},

輸出

了解 React Native 中的 Flexbox 布局

React Native Flex 方向

flexDirection控制父容器的子元素的方向。以下是您可以添加到 flexDirection 的值。

  • column – 這是默認(rèn)值。它從上到下對(duì)齊子元素。啟用換行后,下一行將從第一個(gè)項(xiàng)目的右側(cè)開始到頂部容器。

  • ——它從左到右對(duì)齊元素。下一行將在啟用包裝時(shí)從左側(cè)容器的第一個(gè)元素下開始。

  • column-reverse——它以相反的順序排列元素——從下到上。啟用換行后,下一行將從第一個(gè)項(xiàng)目的右側(cè)開始到底部容器。

  • row-reverse——它以相反的順序排列元素——從右到左。下一行將從第一個(gè)項(xiàng)目下開始到正確的容器以啟用包裝。

了解 React Native 中的 Flexbox 布局
容器: {
  彈性:1,
  flexDirection: '行',
  背景顏色:'#454545',
},

輸出

了解 React Native 中的 Flexbox 布局

React Native 證明內(nèi)容合理

justifyContent用于在父容器的主軸內(nèi)對(duì)齊子元素。您可以通過將 flexDirection 設(shè)置為行和列來水平和垂直設(shè)置元素。

該物業(yè)提供更多價(jià)值如下:

  • flex-start- 這是默認(rèn)值。將元素與容器的主軸起點(diǎn)對(duì)齊。

  • flex-end-將元素對(duì)齊到容器的主軸端。

  • center- 將元素與容器的主軸中心對(duì)齊。

  • space-between- 將元素均勻隔開,并在容器主軸上的子項(xiàng)之間平均分配剩余空間。

  • space-around- 將元素均勻隔開,并將剩余空間分布在容器主軸上的子元素周圍。

  • space-evenly- 均勻分布元素。相鄰項(xiàng)、第一項(xiàng)和主起始邊以及最后一項(xiàng)和主端邊之間的間距相同。

您可能喜歡閱讀:優(yōu)化React Native 應(yīng)用程序性能的終極指南

讓我們看幾個(gè)例子。

justifyContent: 'flex-start'

了解 React Native 中的 Flexbox 布局
容器: {
  彈性:1,
  flexDirection: '行',
  justifyContent: 'flex-start',
  背景顏色:'#454545',
},

輸出

了解 React Native 中的 Flexbox 布局

以下是用于屬性 justifyContent 的每個(gè)值的輸出屏幕截圖。

justifyContent: 'flex-end'

了解 React Native 中的 Flexbox 布局

justifyContent: '中心'

了解 React Native 中的 Flexbox 布局

justifyContent: 'space-around'

了解 React Native 中的 Flexbox 布局

justifyContent: '空格'

了解 React Native 中的 Flexbox 布局

justifyContent: '空間均勻'

了解 React Native 中的 Flexbox 布局

React Native 對(duì)齊項(xiàng)目

alignItems用于將子項(xiàng)與其父容器的橫軸對(duì)齊。類似于與主軸對(duì)齊的 justifyContent,此屬性將使子項(xiàng)與橫軸對(duì)齊。

讓我們舉一些例子。

alignItems: 'flex-start'

了解 React Native 中的 Flexbox 布局
容器: {
  彈性:1,
  flexDirection: '行',
  justifyContent: flex-start',
  對(duì)齊項(xiàng)目:彈性啟動(dòng),
  背景顏色:'#454545',
},

輸出

了解 React Native 中的 Flexbox 布局

以下是每個(gè)值的屏幕截圖。

alignItems: 'flex-end'

了解 React Native 中的 Flexbox 布局

alignItems: '中心'

了解 React Native 中的 Flexbox 布局

所以,這就是在 React Native 中理解和實(shí)現(xiàn)Flexbox 布局。我希望本教程的目的達(dá)到了您的預(yù)期。

Github 存儲(chǔ)庫:Flexbox React Native 示例

如果您想克隆存儲(chǔ)庫并使用代碼。這是 github 存儲(chǔ)庫:flexbox-layout-demo。

如果您想通過在線游戲界面進(jìn)行更多練習(xí),那么您可以玩flexbox froggy游戲。

結(jié)論

Flexbox 易于維護(hù)和理解;一旦您理解了它的概念,您就會(huì)喜歡使用它。如果您有任何疑問、建議或反饋,請(qǐng)給我們回信。此外,如果您希望我們編寫有關(guān)主題的教程,請(qǐng)隨時(shí)提出主題建議。保持學(xué)習(xí)!

言鼎科技主做軟件開發(fā),微信小程序,網(wǎng)站開發(fā),軟件外包,手機(jī)APP開發(fā)。如有需要記得聯(lián)系我們!

The End