iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
1
Mobile Development

新手試試用Flutter做Netflix UI系列 第 5

[Day5]Flutter UI做Netflix排行榜前10名

  • 分享至 

  • xImage
  •  

今天我們來做排行榜前10名的UI,主要跟前面不一樣用到的有ClipRRect、Transform.translate、TextStyle、Shadow
我們先沿用前一篇的列表程式碼,但是這次需要在圖片上疊一層文字,所以用Stack包起來

文字的效果

為了給文字加邊框,我找到了一個簡單的方法,就是加上4個方向偏移的陰影

Text(
     "${index + 1}",
     style: TextStyle(
     color: Colors.black,
     fontSize: 100.0,
     fontWeight: FontWeight.w700,
     height: 0.2,
     letterSpacing: 0.0,
     wordSpacing: 0.0,
     shadows: [
               Shadow(
               // bottomLeft
               offset: Offset(-1.5, -1.5),
               color: Colors.white),
               Shadow(
               // bottomRight
               offset: Offset(1.5, -1.5),
               color: Colors.white),
               Shadow(
               // topRight
               offset: Offset(1.5, 1.5),
               color: Colors.white),
               Shadow(
               // topLeft
               offset: Offset(-1.5, 1.5),
               color: Colors.white),
               ]),
               )

偏移文字

接著我使用 Transform.translate來偏移我的文字,這邊需要設定多少的Offset

Transform.translate(
     offset: Offset(-14, 0),
     child: Text(...),
     ),

剪裁溢出部分

最後把文字溢出的部分切掉,使用ClipRRect,這原本是用來切圓角的,但我把圓角半徑設0.0,這樣就切出我需要的效果了

  ClipRRect(
      borderRadius: BorderRadius.circular(0.0),
      child: SizedBox(
      width: 120,
      child : Stack())//包住這個Stack包含的圖案以及排行榜數字
      )

https://ithelp.ithome.com.tw/upload/images/20200920/20130593mhVJr0v1Qi.jpg
如上的作法會把1也切掉,再幫它加個判斷式就好了,效果圖如上。

GitHub連結: flutter-netflix-clone


上一篇
[Day4]Flutter 用ListView做Netflix推薦影片List
下一篇
[Day6]Flutter Netflix UI之精彩預覽
系列文
新手試試用Flutter做Netflix UI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ppt091010
iT邦新手 5 級 ‧ 2022-06-28 10:39:57

請問有github可以參考嗎

https://github.com/Ignacio1110/flutter-netflix-clone
我最近打算更新一下程式,這是比較舊的程式碼,你可以參考看看

我要留言

立即登入留言