Как создать собственный стек в ленте, появляющейся во флаттере?

Привет всем! Я создаю страницу профиля для приложения Flutter.

В развернутом состоянии SliverAppBar должен отображать представление ниже:

Заголовок с изображением профиля в КРАСНОМ круге

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

прокрученный заголовок с изображением профиля, выходящим за пределы заголовка

Как видите, это настраиваемый стек, который я могу создать.

Я не знаю, как это делать кусочками на флаттере.

Любые ссылки также были бы весьма признательны, чтобы подробно узнать о флаттере и осколках, особенно.

Код для свернутой стопки:

             Stack(
                  alignment: Alignment.topRight,
                  children: <Widget>[
                    Container(
                        margin: EdgeInsets.only(top: 12),
                        width: 2000,
                        height: 80,
                        decoration: BoxDecoration(boxShadow: [
                          BoxShadow(blurRadius: 5.0, color: Colors.black87)
                        ])),
                    Container(
                      margin: EdgeInsets.only(right: 20, top: 5),
                      decoration: BoxDecoration(
                          shape: BoxShape.circle,
                          boxShadow: [
                            BoxShadow(blurRadius: 5.0, color: Colors.black87)
                          ],
                          border: Border.all(color: Colors.cyan, width: 3.0)),
                      child: CircleAvatar(
                        backgroundImage: AssetImage(
                            "assets/images/food/avocado-f.jpg"),

                        radius: 50,
                      ),
                    )
                  ],
                ),

person insanebaba    schedule 20.09.2019    source источник


Ответы (1)


Вы должны использовать SliverPersistentHeader и создать свой собственный SliverPersistentHeaderDelegate.

В методе сборки вы добавляете представление стека и можете использовать Transform или SizedBox для масштабирования и преобразования круга в зависимости от высоты заголовка.

Есть хороший учебник, объясняющий, как использовать этот виджет https://medium.com/flutter-community/how-to-code-a-dynamic-header-in-flutter-e171ec2231bf

person jamesblasco    schedule 06.01.2020