Сдвиг вверх и вниз TabBar и AppBar - PullRequest
0 голосов
/ 16 апреля 2020

Моя проблема:

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

Вот мой исходный код:

import 'package:flutter/material.dart';
import '../screens/home_screen.dart';
import '../screens/home_screen_map_view.dart';

class TopTabsScreen extends StatefulWidget {
  @override
  _TopTabsScreenState createState() => _TopTabsScreenState();
}

    class _TopTabsScreenState extends State<TopTabsScreen> {
      @override
      Widget build(BuildContext context) {
        return DefaultTabController(
          length: 2,
          child: NestedScrollView(
            headerSliverBuilder: (context, value) {
              return [
                SliverAppBar(
                  title: Center(
                    heightFactor: 0,
                    child: Padding(
                      padding: const EdgeInsets.only(top: 7),
                      child: Image.asset(
                        'assets/images/***.png',
                        fit: BoxFit.cover,
                        scale: MediaQuery.of(context).size.width * 0.007,
                        alignment: Alignment.bottomCenter,
                      ),
                    ),
                  ),
                  expandedHeight: MediaQuery.of(context).size.height * 0.12,
                  primary: true,
                  floating: true,
                  pinned: true,
                  bottom: TabBar(
                    indicatorColor: Color.fromRGBO(253, 166, 41, 1.0),
                    tabs: <Widget>[
                      Tab(
                        icon: Icon(Icons.list),
                      ),
                      Tab(
                        icon: Icon(Icons.location_on),
                      ),
                    ],
                  ),
                  forceElevated: false,
                  flexibleSpace: Container(
                    decoration: BoxDecoration(
                      gradient: LinearGradient(
                        begin: Alignment.topCenter,
                        end: Alignment.bottomCenter,
                        colors: <Color>[
                          Color.fromRGBO(107, 176, 62, 1.0),
                          Color.fromRGBO(153, 199, 58, 1.0),
                        ],
                      ),
                    ),
                  ),
                )
              ];
            },
            body: TabBarView(
              children: <Widget>[
                HomeScreen(),
                HomeScreenMapView(),
              ],
            ),
          ),
        );
      }
    }

Вот изображение текущего статуса:

Current Status Screenshot

...