簡體   English   中英

Flutter:Cupertino ListTile? (或如何創建類似 iOS 的設置菜單)

[英]Flutter: Cupertino ListTile ? (or How To Create iOS-Like-Settings Menu)

我們是否有一種僅使用CupertinoApp來執行下面那種菜單的簡單方法?

好的,所以我們可以像這樣在CupertinoPageScaffold使用Scaffold ,並且仍然使用與 Cupertino 相同的材質ListTile

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(
        middle: Text('My List'),
      ),
      child: SafeArea(
        child: Scaffold(
          body: _listView(context),
        ),
      ),
    );
  }

你可以在 pub.dev 上試試這個:

cupertino_list_tile: ^0.2.0

https://pub.dev/packages/cupertino_list_tile

通過使用 CupertinoButton 而不是 ListTile,我能夠獲得非常接近 iOS 列表的結果,這是一個非常靈活的組件。 它顯然也沒有連鎖反應。

結果

這種方法的唯一缺點是按鈕使用了pressedOpacity,但是將默認值從0.4減少到0.65或類似的東西就可以了。

CupertinoButton(
  pressedOpacity: 0.65,
  color: Colors.white,
  borderRadius: const BorderRadius.all(
    Radius.circular(0),
  ),
  padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16),
  alignment: Alignment.centerLeft,
  child: Row(
    mainAxisAlignment: MainAxisAlignment.spaceBetween,
    children: [
      Row(
        children: [
          const Padding(
            padding: EdgeInsets.only(right: 12),
            child: SizedBox(
              height: 28,
              width: 28,
              child: DecoratedBox(
                decoration: BoxDecoration(
                  color: Colors.teal,
                  borderRadius: BorderRadius.all(
                    Radius.circular(4),
                  ),
                ),
                child: Icon(
                  Icons.ac_unit_sharp,
                  color: Colors.white,
                ),
              ),
            ),
          ),
          Text(
            'Snowflake item',
            style: TextStyle(color: Colors.black),
          ),
        ],
      ),
      const Icon(
        Icons.chevron_right,
        color: Colors.grey,
      ),
    ],
  ),
  onPressed: () {},
)

Flutter 3.7添加了兩個新小部件: CupertinoListSectionCupertinoListTile ,用於顯示 iOS 樣式的可滾動小部件列表。

提醒 筆記

公眾號:https://github.com/flutter/flutter/pull/78732

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM