Necesito cambiar el color de la barra de desplazamiento de Cupertino, pero no puedo hacerlo a través del constructor normal. ¿Hay alguna forma de hacer que la barra de desplazamiento sea blanca?

    CupertinoScrollbar(
              thickness: 5,
              controller: scrollController,
              thicknessWhileDragging: 8,
              //color not exist
    )
0
F-Y 20 ene. 2021 a las 12:16

1 respuesta

La mejor respuesta

CupertinoScrollBar está codificado de forma rígida, por lo que en iOS no puede cambiar el color, pero puede usar highlightColor para ThemeData. El color se mostrará solo en Android.

MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        //main color
        primaryColor: const Color(0xffFFC600),
        //main font
        fontFamily: 'Roboto-Medium',
        //swatch stretching
        primarySwatch: goldenThemeColor,
        visualDensity: VisualDensity.adaptivePlatformDensity,

        splashColor:  const Color(0xffFFC600),

        //color for scrollbar
        highlightColor: Color(0xffffc600)

      ),
import 'package:flutter/material.dart';

class LandingPage extends StatefulWidget {
  LandingPage({Key key}) : super(key: key);
  @override
  State<StatefulWidget> createState() {
    return _LandingPageState();
  }
}

class _LandingPageState extends State<LandingPage> {
  ScrollController _controller;
  double _offset = 0;

  @override
  void initState() {
    _controller = ScrollController();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {

    return Scaffold(
      backgroundColor: Colors.white,
      body: Stack(
        children: [
          Container(
            child: SingleChildScrollView(
              controller: _controller,
              child: Column(
                children: [
                  Container(
                    height: MediaQuery.of(context).size.height,
                    width: MediaQuery.of(context).size.width,
                    color: Colors.black,
                  ),
                  Container(
                    height: MediaQuery.of(context).size.height,
                    width: MediaQuery.of(context).size.width,
                    color: Colors.red,
                  ),
                  Container(
                    height: MediaQuery.of(context).size.height,
                    width: MediaQuery.of(context).size.width,
                    color: Colors.green,
                  ),
                  Container(
                    height: MediaQuery.of(context).size.height,
                    width: MediaQuery.of(context).size.width,
                    color: Colors.blue,
                  ),
                ],
              ),
            ),
          ),
          //Scroll bar
          Container(
              alignment: Alignment.centerRight,
              height: MediaQuery.of(context).size.height,
              width: 20.0,
              margin: EdgeInsets.only(left: MediaQuery.of(context).size.width - 20.0),
              decoration: BoxDecoration(color: Colors.black12),
              child: Container(
                alignment: Alignment.topCenter,
                  child: GestureDetector(
                      child: Container(
                      height: 40.0,
                      width: 15.0,
                      margin:
                          EdgeInsets.only(left: 5.0, right: 5.0, top: _offset),
                      decoration: BoxDecoration(
                          color: Colors.grey, //Change Color here
                          borderRadius: BorderRadius.all(Radius.circular(3.0))),
                    ),
                      onVerticalDragUpdate: (dragUpdate) {
                        _controller.position.moveTo(dragUpdate.globalPosition.dy * 3.5);

                        setState(() {
                           if(dragUpdate.globalPosition.dy >= 0) {
                             _offset = dragUpdate.globalPosition.dy;
                           }
                          print("View offset ${_controller.offset} scroll-bar offset ${_offset}");
                        });
                      },
                ),
              )
          ),
        ],
      ),
    );
  }
}
1
Tempelritter 22 ene. 2021 a las 15:50