Как увеличить высоту КупертиноСлайверНавигацияБар - PullRequest
2 голосов
/ 10 июня 2019

Я пытался закрыть WhatsApp (версия для iOS) флаттером, используя виджеты Купертино.

при попытке сделать заголовок с CupertinoSliverNavigationBar я заметил, что вы не можете увеличить высоту CupertinoSliverNavigationBar .

Мой код

return CupertinoPageScaffold(
      child: NotificationListener<ScrollNotification>(
        onNotification: (scrollNotification) {
          if (scrollNotification is ScrollStartNotification) {
            _onStartScroll(scrollNotification.metrics);
          } else if (scrollNotification is ScrollUpdateNotification) {
            _onUpdateScroll(scrollNotification.metrics);
          } else if (scrollNotification is ScrollEndNotification) {
            _onEndScroll(scrollNotification.metrics);
          }
        },
        child: CustomScrollView(
          slivers: <Widget>[
            CupertinoSliverNavigationBar(

              leading: GestureDetector(
                child: Padding(
                  padding: EdgeInsets.only(top: 10.0),
                  child: Text(
                    "Edit",
                    style: TextStyle(
                      color: Constants.primaryColor,
                      fontSize: 18.0,
                    ),
                  ),
                ),
                onTap: ()=>print("Tapped"),
              ),

              trailing: GestureDetector(
                child: Icon(
                  CupertinoIcons.create_solid,
                  size: 25.0,
                ),
                onTap: ()=>print("Tapped"),
              ),
              automaticallyImplyLeading: false,
              largeTitle: Column(
                children: <Widget>[
                  Container(
                    child: Text(
                      "Chats",
                      textAlign: TextAlign.left,
                    ),
                  ),
                  GestureDetector(
                    child: SearchBar(),
                  ),

                ],
              ),


            ),



          ],

        ),
      ),
    );

Скриншоты ниже:

Чего я хочу достичь

What i want to achieve

Что получаю

enter image description here

Есть ли работа вокруг или как-нибудь увеличить высоту? Спасибо!

1 Ответ

2 голосов
/ 12 июня 2019

Пуристы и сторонники флаттера убьют меня, но эти размеры являются частью значений констант (например, значений рекомендаций MaterialDesign), 2 быстрых варианта:

Опция 1: Изменить SDK напрямую: Ctrl (или Cmd) + нажатие CustomScrollView , откроет флаттер / lib / src / cupertino / nav_bar.dart

Изменить строку 22 или 26:

/// This height is constant and independent of accessibility as it is in iOS.
const double _kNavBarPersistentHeight = 44.0;

/// Size increase from expanding the navigation bar into an iOS-11-style large title
/// form in a [CustomScrollView].
const double _kNavBarLargeTitleHeightExtension = 52.0; // change this one!

Вариант 2: Скопируйте файл nav_bar.dart прямо в ваш проект и измените его, или, что еще лучше, возьмите все зависимости CustomScrollView (), и введите собственное имя и urсобственные значения ... Я думаю, что помимо того, что Apple является стандартным руководством по разработке, возможность изменять эти значения требуется для нескольких разработчиков.Возможно, нам следует открыть запрос на Github.

Надеюсь, вы найдете мое "хакерское" решение полезным!

Результат: demo image

...