小程序里面的布局方式
小程序的圖片上這里使用的是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高度基本山差不多