Flutter移動電商實戰 --(30)列表頁_商品列表UI界面布局


小程序里面的布局方式

小程序的圖片上這里使用的是warp布局,因為首頁里面火爆專區,已經用過了warp來布局了。

所以這里我們沒有必要再講一遍,這里我們使用ListView,我們把它布局成下圖這種形式:

我們拆的散一點,用內部方法的形式,我們把圖片和名稱分別拆成單獨的方法去實現,然后在組合成一個子項賦值給ListView

開始寫內部方法

圖片widget

如果圖片很大的話,我們需要設定一個限制,這個時候就體現出來這個外層套一個Container的好處。很容易給外層這個Container加上限制

商品名稱widget

還是用內部方法的形式

文字最多顯示2行,如果超出了兩行就顯示省略號

這種文字比較多的就顯示2行

我們還要設置文字越界的問題,這行我們設置的最多顯示兩行和超出顯示省略號才會起作用,然后再設置padding 左側的間距 不和左邊的圖片緊挨着。這里都在外層套的Container上設置了。

價格的widget

價格是有一個商城價格,后面是市場價格,這里就采用Row的形式

我們需要給這個組件加上margin和上面的標題 有間距

組合起來各個widget

因為要增加點擊事件,點擊后要跳轉到詳情頁面,所以我們最外層返回的widget是InkWell

先橫向布局,再列布局,先用Row左右分開,然后右邊是上下分開用Column

這樣就形成了我們的子項

加一些修飾的東西,例如每一項的下面有下划線,上下的邊距。我們在Container里面做這些事

decoration:主要做的是背景和下面的邊框線

到build方法里組件我們的ListView.我們當前build方法現在還只是一個ListView

現在來組件我們的ListView,最好設置寬和高,否則就會報溢出的錯誤

寬:750-180=570

高:拿不准,就隨便給個1000吧

這里我們還是用動態構造方法的ListView也就是。ListView.builder()

報錯:無法啟動AVD模擬器

0:44    IDE and Plugin Updates: The following plugin is ready to update: Flutter
0:44    IDE and Plugin Updates: The following components are ready to update: Android Emulator, Google APIs Intel x86 Atom System Image

Warning: SetProcessDpiAwareness(2) failed: COM error 0xffffffff80070005  (Unknown error 0x0ffffffff80070005), using 2 ((null):0, (null))
INFO: QtLogger.cpp:66: Warning: SetProcessDpiAwareness(2) failed: COM error 0xffffffff80070005  (Unknown error 0x0ffffffff80070005), using 2 ((null):0, (null))

0:55    IDE and Plugin Updates: The following plugin is ready to update: Flutter
0:55    IDE and Plugin Updates: The following components are ready to update: Android Emulator, Google APIs Intel x86 Atom System Image

點擊升級flutter

升級Android Emulator

升級完avd模擬器可以正常顯示了了 卧槽。。。。。。。

正常顯示的樣子

效果的展示:

效果又出來了 但是又溢出了

代碼修復一個地方

超出顯示省略的地方,原來寫錯了,寫成分割了。

解決溢出的問題

改成974高度基本山差不多


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM