平滑页面指示器

Smooth Page Indicator

即使我添加了平滑页面指示器,它也没有出现在模拟器中。我也遇到了一些调试错误。 例如'package:flutter/src/rendering/object.dart':断言失败:第 1785 行第 12 行:'!_debugDoingThisLayout':不正确。

RenderBox 未布局:RenderFlex#1ac32 relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE

RenderBox 未布局:RenderViewport#9012c NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE

而且,我无法在页面之间切换。我该如何解决这个问题?

import 'package:deneme/modul2.dart';
import 'package:deneme/modul3.dart';
import 'package:deneme/modul4.dart';
import 'package:deneme/modul5.dart';
import 'package:flutter/material.dart';
import 'package:smooth_page_indicator/smooth_page_indicator.dart';

class Modul1 extends StatelessWidget {
  final _controller = PageController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            Image.asset("images/modül1.png"),
            SizedBox(
            height: 100,
            child: PageView(
            controller: _controller,
            children: [
              Modul1(),
              const Modul2(),
              const Modul3(),
              const Modul4(),
              const Modul5(),
               ],
              ),
            ),
            SmoothPageIndicator(
              controller: _controller,
                count: 5,
              axisDirection: Axis.vertical,
              effect: SlideEffect(
                  activeDotColor: Colors.white54,
                  dotHeight: 10,
                  dotColor: Colors.white,
                  dotWidth: 10,
                ),
            ),
          ],
        ),
      );
  }
}

我测试的时候没有出现这个错误,但是我做了一些修改:

  1. 我更改了圆点的颜色,因为它在白色背景上是白色的,这使得它们不可见。
  2. 为了测试目的添加 Expanded 而不是 SizedBox
  3. axisDirection 水平 SmoothPageIndicator
  4. Models 替换为 Text 因为缺少 类。

这就是结果(不知道为什么它被拉长了):

在单独的文件上尝试这个例子并测试它,然后告诉我你得到的结果。

import 'package:flutter/material.dart';
import 'package:smooth_page_indicator/smooth_page_indicator.dart';

class TestPage extends StatelessWidget {
  TestPage({Key? key}) : super(key: key);
  final _controller = PageController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            Image.asset("images/modül1.png"),
            Expanded(
              child: PageView(
                controller: _controller,
                children: const [
                  Center(
                    child: Text('Page 1'),
                  ),
                  Center(
                    child: Text('Page 2'),
                  ),
                  Center(
                    child: Text('Page 3'),
                  ),
                  Center(
                    child: Text('Page 4'),
                  ),
                  Center(
                    child: Text('Page 5'),
                  ),
                ],
              ),
            ),
            SmoothPageIndicator(
              controller: _controller,
              count: 5,
              axisDirection: Axis.horizontal,
              effect: const SlideEffect(
                activeDotColor: Colors.white54,
                dotHeight: 10,
                dotColor: Colors.blue,
                dotWidth: 10,
              ),
            ),
            const SizedBox(height: 50),
          ],
        ),
      ),
    );
  }
}