RN開發實踐——仿攜程App(三)

文章最後附上源碼地址

上一片博客鏈接RN開發實踐——仿攜程App(二)

實現首頁中間的內容欄

今天實現首頁中間的內容欄,原效果如下:

紅框就是今天需要實現的內容

這裏可以拆解成四個部分,每個部分都是由相同組件,填充不同內容來實現。

簡單佈局的實現

在homebean首頁json數據中,設置了一個itemBeans的集合數據,存放着我們需要實現的四個部分組件的數據。

在homepage中遍歷itemBeans這個集合數據,並簡單的創建四個View組件,預先佔位,後面再逐一實現。

定義一個CenterBar組件

創建CenterBar的組件,這個組件就是四個部分的組件了。

使用CenterBar這個組件

在homepage中使用CenterBar這個組件替換掉遍歷創建的View組件

傳數據到CenterBar組件中

1.傳遞數據到CenterBar中

CenterBar設置一個屬性了itemBean來接收itemBeans數據中對應item對象內容。

2.CenterBar接收數據

在CenterBar通過this.props.itemBean來獲取接受到的itemBean數據

//接收數據
var itemBean=this.props.itemBean;

實現CenterBar佈局

1.佈局的搭建

接收完數據,開始CenterBar佈局搭建,這裏拆分下結構,如圖:

分爲左中右結構,中間和右邊部分又分爲上下結構。

設置屬性flexDirection爲橫向佈局row,給左中右三部分設置對應的樣式,設置flex屬性(類似權重屬性),寬度比例爲1:1:1。

2.完善中間和右邊佈局

給每一項填充對應數據。

因爲中間和右邊代碼一致,抽取重複的代碼,只需傳入對應的index值,獲取對應數據即可。

3.完善中、右佈局對應的樣式

  • 給每一項添加背景,這裏通過itemBean數據中有個bgColor的值,給不同item設置不同背景顏色

  • 設置字體居中和大小

  • 添加白色邊框

4.完善左邊內容

itembean數據有個type的值用來區分兩種類型的item,用來區分item左邊部分不同的佈局。

  • 添加左邊的佈局結構

  • 完善左邊的佈局

  • 修改佈局樣式

  • 修改圖片和文字樣式

最終效果如下:

最後附上項目地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章