平滑页面指示器
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,
),
),
],
),
);
}
}
我测试的时候没有出现这个错误,但是我做了一些修改:
- 我更改了圆点的颜色,因为它在白色背景上是白色的,这使得它们不可见。
- 为了测试目的添加
Expanded
而不是 SizedBox
。
axisDirection
水平 SmoothPageIndicator
。
- 将
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),
],
),
),
);
}
}
即使我添加了平滑页面指示器,它也没有出现在模拟器中。我也遇到了一些调试错误。 例如'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,
),
),
],
),
);
}
}
我测试的时候没有出现这个错误,但是我做了一些修改:
- 我更改了圆点的颜色,因为它在白色背景上是白色的,这使得它们不可见。
- 为了测试目的添加
Expanded
而不是SizedBox
。 axisDirection
水平SmoothPageIndicator
。- 将
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),
],
),
),
);
}
}