标签: singlechildscrollview

Flutter Scrollbar的ScrollController没有附加ScrollPosition

error我在使用时得到这个AppBar

滚动条的 ScrollController 没有附加 ScrollPosition。

这是我的CustomScrollBar

class CustomScrollBar extends StatelessWidget {
  final Widget child;
  final ScrollController scrollController;

  const CustomScrollBar({
    required this.scrollController,
    required this.child,
  });

  @override
  Widget build(BuildContext context) {
    return RawScrollbar(
      thumbColor: AppColors.gray,
      radius: Radius.circular(8),
      thickness: 4,
      isAlwaysShown: true,
      controller: scrollController,
      child: child,
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我应该永远可见。这就是我使用它的方式:

child: CustomScrollBar(
              scrollController: _scrollControllerForScrollBar,
              child: SingleChildScrollView(
                controller: _scrollControllerForScrollBar,
                child: Padding(
                  padding: EdgeInsets.all(7.0.scaled),
                  child: Container(
                    width: double.infinity,
                    child: Text(
                      'any text bla bla bla \n\n\n this is a lot …
Run Code Online (Sandbox Code Playgroud)

scrollbar scrollview dart flutter singlechildscrollview

40
推荐指数
2
解决办法
2万
查看次数

Flutter:RenderBox 没有布局:RenderRepaintBoundary#58c65relayoutBoundary=up1 NEEDS-PAINT

我正在SingleChildScrollView使我的屏幕滚动,但是当我添加时,SingleChildScrollView我遇到了以下错误

RenderBox was not laid out: RenderRepaintBoundary#58c65 relayoutBoundary=up1 NEEDS-PAINT
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1681 pos 12: 'hasSize
Run Code Online (Sandbox Code Playgroud)

我的代码

   class _RegisterPage extends State<RegisterApp> {
  final _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme:
          ThemeData(primarySwatch: Colors.blue, brightness: Brightness.light),
      darkTheme: ThemeData(brightness: Brightness.dark),
      home: SafeArea(
          child: Scaffold(
        backgroundColor: Colors.white,
        body: SingleChildScrollView(
          child: Stack(
            fit: StackFit.expand,
            children: <Widget>[
              Column(
                children: <Widget>[
                  Column(
                    children: <Widget>[
                      Form(
                        key: _formKey,
                        child: new Theme(
                            data: ThemeData(
                                accentColor: Colors.purple,
                                primaryColor: Colors.blue, …
Run Code Online (Sandbox Code Playgroud)

android dart flutter flutter-layout singlechildscrollview

12
推荐指数
1
解决办法
3万
查看次数

如何在 Flutter 中自动滚动到 SingleChildScrollView 内的 Row 位置

我正在使用 SingleChildScrollView。它的scrollDirection设置为Horizo​​ntal,并且>20个子widgets放置在Row Widget内。我想以编程方式滚动到行中的位置小部件(即第 5 个或第 6 个位置)。有什么方法可以以编程方式做到这一点吗?

SingleChildScrollView(
    scrollDirection: Axis.horizontal,
    child: Row(
      children: buttons,
    ),
  )
Run Code Online (Sandbox Code Playgroud)

row flutter flutter-layout singlechildscrollview

9
推荐指数
2
解决办法
1万
查看次数

(RenderViewport不支持返回内在尺寸

我面临这个异常:

FlutterError(RenderViewport 不支持返回内在尺寸。计算内在尺寸需要实例化视口的每个子级,这会破坏视口的惰性。如果您只是尝试在主轴方向上收缩包裹视口,请考虑RenderShrinkWrappingViewport 渲染对象(ShrinkWrappingViewport 小部件),无需实现内在维度 API 即可实现该效果。)

当我添加时ProductsWidget发生异常。

产品小部件的代码是:

class ProductsWidget extends GetResponsiveView<HomeTabController> {
  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      shrinkWrap: true,
      itemCount: 3,
      // padding: EdgeInsets.symmetric(vertical: 20),
      physics: NeverScrollableScrollPhysics(),
      itemBuilder: (context, index) => Column(
        children: [
          Row()])}}
Run Code Online (Sandbox Code Playgroud)

调用代码是:

body: LayoutBuilder(
          builder: (BuildContext context, BoxConstraints constraints) {
        return SingleChildScrollView(
          child: ConstrainedBox(
            constraints: BoxConstraints(
              minHeight: constraints.maxHeight,
            ),
            child: IntrinsicHeight(
              child: Column(
                mainAxisSize: MainAxisSize.min,
                children: [
                  Expanded(
                      //  flex: 1,
                      child: HomeAppBar()),
                  // listView
                  // i made shrinkWrap=true
                  // …
Run Code Online (Sandbox Code Playgroud)

user-interface flutter singlechildscrollview

8
推荐指数
2
解决办法
2万
查看次数

如何在颤振中添加签名?

我已经在我的颤振项目中实现了signature_pad并且它工作正常。

不幸的是,当我把它放在里面时SingleChildScrollView,签名没有画出来。它滚动而不是签名。

似乎是,GestureDetector但我不知道如何解决它。

有人可以给我一些线索吗?

谢谢。

signature dart flutter flutter-widget singlechildscrollview

6
推荐指数
1
解决办法
1629
查看次数

使用 SingleChildScrollView 时无法向下拖动底部表单

我已经创建了一个带有底部表和列表视图构建器的应用程序。在底部,当我将其向上拖动时必须出现一个文本按钮底部表必须出现。底页上有一个表格。我用 SingleChildScrollView 包裹了底页。但是当我单击 TextFormField 键盘时,我可以滚动底部工作表。但是我无法将其向下拖动并关闭底部工作表。即使我按下手机中的后退箭头以摆脱键盘。

import 'package:flutter/material.dart';

class Home extends StatefulWidget {
  const Home({Key key}) : super(key: key);

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {

  @override
  Widget build(BuildContext context) {
    var width = MediaQuery.of(context).size.width;
    return Scaffold(

        resizeToAvoidBottomInset: false,
        body: Stack(
                children: [
                  ListView.builder(
                      itemCount: 1,
                      itemBuilder: (context, index) {
                        return Card(
                          );
                      }),
                  Positioned(
                    bottom: 0,
                    child: GestureDetector(
                      onPanEnd: (details) {
                        if (details.velocity.pixelsPerSecond.dy < 10) {

                          //Bottom Sheet.................................................................................................................

                          showModalBottomSheet(
                              shape: RoundedRectangleBorder(
                                borderRadius: BorderRadius.vertical(
                                    top: Radius.circular(25)),
                              ), …
Run Code Online (Sandbox Code Playgroud)

forms flutter bottom-sheet singlechildscrollview

6
推荐指数
1
解决办法
33
查看次数

管理 SingleChildScrollView 内 SingleChildScrollView 的滚动 - 颤动?

我有一个父 SCS 视图(SingleChildScrollView) 和一个子 SCS 视图。在子 SCS 视图内有一个数据表,数据表从屏幕底部四分之一左右开始。

现在,当用户滚动到子 SCS 视图内的数据表顶部时,我想滚动父 SCS 视图。

这在网络中自然有效,但在 iOS 或 anroid 中不起作用。我尝试对父级和子级 SCS 视图使用相同的 Scrollcontroller 并使用 ScrollPhysics。但似乎没有任何作用。你能帮我解决一下吗?

这是代码:

    import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Report'),
        ),
      ),
    ),
  );
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final ScrollController scrollController = ScrollController();

  @override
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Column(
        children: [
          Text('Some Data', style: TextStyle(fontSize: 30)), …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout singlechildscrollview

6
推荐指数
1
解决办法
2529
查看次数

如何启用垂直滚动的滚动条并禁用水平滚动?

我一直在用水平和垂直滚动来构建布局。垂直可滚动Column用于主要内容,并由不同的视图填充,包括ListView显示促销横幅的水平视图。我想显示垂直滚动的滚动条,但不是水平滚动。我已经将SingleChildScrollView可以Column滚动的包裹在中ScrollBar,但是该栏出现在水平滚动条的垂直方向上。对这些事情有什么微调吗?

证明问题的样本

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Scrollables',
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Scrollbar(
        child: new SingleChildScrollView(
            child: new Container(
          padding: EdgeInsets.only(top: 40.0),
          child: Column(children: <Widget>[
            HorizontalListView(),
            VerticalListView(),
          ]),
        )),
      ),
    );
  }
}

class HorizontalListView extends StatelessWidget {
  var items = new …
Run Code Online (Sandbox Code Playgroud)

listview scrollbar dart flutter singlechildscrollview

5
推荐指数
1
解决办法
2758
查看次数

列内列的 SingleChildScrollView

在下图中,我想要实现的是让绿色部分Scrollable,因为如果键盘弹出,它不会给我渲染错误。

整个屏幕只是一个Column,其中黄色部分是自定义小部件,绿色部分是Column其中的另一个。

我尝试过不同的解决方案。将整个列包装到 SingleChildScrollView 中,但我希望黄色部分保持固定在顶部。我也尝试过仅将绿色部分包装到 SingleChildScrollView 中,但它不起作用(仍然引发渲染错误)。

我已经看到我可以使用SliverAppBar,但我想使用我的自定义小部件(黄色部分)来实现。

我有点卡住了。

Scaffold(
      body: SafeArea(
        child: Column(
          children: [
            AppBarWidget(height: size.height * 0.15),
            Container(
              height: size.height - size.height * 0.15 - mediaQuery.padding.top,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceAround,
                children: [
                  EditableAvatarWidget(
                    circleRadius: circleRadius,
                    badge: test,
                    border: Border.all(color: test.mainColor, width: 5),
                  ),
                  Column(
                    children: [
                      Text(
                        "Name Surname",
                        style: TextStyle(
                            fontWeight: FontWeight.bold,
                            fontSize: 26,
                            color: Global.blackGrey),
                      ),
                      SizedBox(height: 10),
                      Text(
                        "mail@mail.com",
                        style: TextStyle(fontSize: 18, color: Colors.grey),
                      )
                    ], …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout singlechildscrollview

4
推荐指数
1
解决办法
3495
查看次数

Flutter 在滚动过程中保持某些元素固定?

如何在滚动过程中保持某些元素固定(以及可滚动部分之上)?它是否需要位于 SingleChildScrollView 内?

为我的问题做了一个直观的例子:

我需要蓝色部分可滚动,并且它位于需要保持固定的绿色部分后面。

如何在滚动过程中保持某些元素固定?

这是我的代码的简化部分:

body: SingleChildScrollView(
          child: ListView(
            children: [
              Obx(()=>Container(THIS CONTAINER SHOULD STAY FIXED DURING SCROLL)),
              Obx(()=>Column(THIS PART SHOULD BE SCROLLABLE)),
              Obx(()=>Text(THIS PART SHOULD BE SCROLLABLE)),
              Obx(()=>Row(THIS PART SHOULD BE SCROLLABLE))
            ],
          )
        ),
Run Code Online (Sandbox Code Playgroud)

scroll flutter flutter-layout flutter-listview singlechildscrollview

4
推荐指数
1
解决办法
2871
查看次数