小编Pra*_*pta的帖子

失败的断言:第 556 行 pos 15: 'scrollOffsetCorrection != 0.0': is not true

将flutter升级到最新版本后。我正面临这个问题,我为另一个具有早期版本 flutter 的应用程序使用了相同的代码,并且它工作正常。

使用新的 ListView 添加两个或更多子项。

向下滚动列表到第一个孩子完全离开屏幕的点。

一直向上滚动到初始位置。ListView 在屏幕上不显示任何内容(只有空白区域)。

附上最小的可重现代码:

import 'dart:async';

import 'package:flutter/material.dart';


void main() {
  runApp(MyApp());
}

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

class MYYApp extends StatefulWidget {
  @override
  _MYYAppState createState() => _MYYAppState();
}

class _MYYAppState extends State<MYYApp> {

  final list = [
    'BMW',
    'Fiat',
    'Toyota',
    'Fiat',
    'Testa',
    'Fiat',
    'Ford',
    'Fiat',
    'BMW',
    'Fiat',
    'Toyota',
    'Fiat',
    'Testa',
    'Fiat',
    'Ford',
    'Fiat'
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold( …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

视频不可见,但音频在 iOS、flutter 视频播放器中工作正常

这在 Android 设备中工作得很好,音频和视频都相应地播放。但就 iOS 而言,只有音频可以工作,没有视觉效果。我正在 iOS 模拟器中运行该应用程序。我还在 GitHub 上搜索了这个问题,人们建议它在真实设备上可以正常工作,但事实并非如此。

这是我播放视频的完整代码

class UiPathVideoPage extends StatefulWidget {
  final String text;
  UiPathVideoPage({Key key, @required this.text}) : super(key: key);
  @override
  _UiPathVideoPageState createState() => _UiPathVideoPageState();
}

class _UiPathVideoPageState extends State<UiPathVideoPage> {
  VideoPlayerController _controller;
  ProgressDialog pr;
  @override void initState() {
    // TODO: implement initState


    super.initState();




    if(widget.text == 'Telecom') {
      _controller = VideoPlayerController.network(
          'https://firebasestorage.googleapis.com/v0/b/recycler-view-8483d.appspot.com/04ea5f9ca1')
        ..initialize().then((_) {
          // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed.
          setState(() …
Run Code Online (Sandbox Code Playgroud)

flutter

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

在 ListView.builder 的末尾提供一些额外的空间

在此输入图像描述 下面是我的代码,我想添加一些高度为 50 的额外空间,它位于列表项的末尾。因为当我的第二个子堆栈出现时,它几乎与列表视图的最后一项重叠。我尝试用列包装 ListView.builder 并最后添加一个容器,但破坏了我的整个结构。对于这种情况,我必须将列包装成单个可滚动的,这将堆栈第二个小部件推到 ListItem 的末尾。(但我不希望堆栈第二个对象可滚动)。如您所见,我无法单击 HotDog。

 body: Stack(
        children: <Widget>[
          ListView.builder(
                  itemCount: itemData.length,
                  shrinkWrap: true,
                  scrollDirection: Axis.vertical,
                 itemBuilder: (BuildContext context,int index){ 
                   return Text(data[index].name);
 }

                     ),

          Padding(
            padding: const EdgeInsets.all(10.0),
            child: Container(
              decoration: BoxDecoration(
                borderRadius: BorderRadius.circular(8),
                color: Colors.cyan
              ),
              padding: EdgeInsets.all(10),
              height: 60,

            ),
          )
        ],
      ),
Run Code Online (Sandbox Code Playgroud)

dart flutter

5
推荐指数
2
解决办法
7521
查看次数

单击按钮时在同一屏幕上显示 TextField 值

这是我的屏幕,带有TextFieldButton。当有人单击“显示”按钮时,我希望它在按钮下方显示名称,如下图所示。

在此输入图像描述 在此输入图像描述

代码如下:


class Demo extends StatefulWidget {
  @override
  _DemoState createState() => _DemoState();
}

class _DemoState extends State<Demo> {
  final name = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Column(
          children: [
            Row(
              children: [
                Text(
                  'Name'
                ),
                TextField(
                  controller: name,
                )
              ],
            ),
            RaisedButton(
              onPressed: (){

              },
              child: Text('Show'),
            )
          ],
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

如何修复此错误:构建 FutureBuilder&lt;DataSnapshot&gt;(dirty, state: _FutureBuilderState&lt;DataSnapshot&gt;#89711) 时抛出以下断言:

这是错误:

有问题的小部件是:FutureBuilder 构建函数绝不能返回 null。要返回导致建筑小部件填充可用空间的空白空间,请返回“Container()”。要返回占用尽可能少空间的空白空间,请返回“Container(width: 0.0, height: 0.0)”。

这是获取 Firebase 实时数据的函数:

Future<void> getCategoriesName() async {
   
    await  FirebaseDatabase.instance.reference().child('Categories').once()
        .then((DataSnapshot dataSnapshot){
      var key  = dataSnapshot.value.keys;
      for(var i in key)
      {
        CategoryItems categoryItems =  new CategoryItems(
            dataSnapshot.value[i]['CategoryName'],
            dataSnapshot.value[i]['Counter']
            

        );
        categoryItemList.add(categoryItems);
      }
      setState(() {
        print(categoryItemList.length);
      });

    });
  }

Run Code Online (Sandbox Code Playgroud)

这是我的 Future Builder 功能:

 Container(
                        margin: EdgeInsets.only(bottom: 50,top: 100),
                        child: FutureBuilder(
                          future: FirebaseDatabase.instance.reference().child('Categories').child(_userPin).once(),
                          // ignore: missing_return
                          builder: (context, snapshot) {
                            if(snapshot.hasData){
                               if (snapshot.data!=null) {
                                return Expanded();
                               }else{
                                 return Loader();
                               }
                          }
                          }
                        ),
                      ),
Run Code Online (Sandbox Code Playgroud)

在 Expanded 内部我有 …

dart flutter

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

尝试在flutter中创建不同语言的pdf

我想在我的 PDF 中打印印地语,我也尝试过使用 Google 的 Raleway-Regular.ttf 字体,但它也不起作用。

\n
final font = await rootBundle.load("fonts/ARIAL.TTF");\nfinal ttf = pw.Font.ttf(font);\n\npdf.addPage(\n  pw.MultiPage(\n    pageFormat: PdfPageFormat.a4,\n    margin: pw.EdgeInsets.all(32),\n    build: (pw.Context context){\n    return <pw.Widget>[\n      pw.Center(\n        child: pw.Text("\xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\xa8",style: pw.TextStyle(fontSize: 16,font: ttf))\n      ),\n      pw.SizedBox(height: 20),\n      pw.Center(\n      child: pw.Text("ABC",style: pw.TextStyle(fontSize: 16))\n    ),\n  ),\n),\n
Run Code Online (Sandbox Code Playgroud)\n

我收到以下错误:

\n

***I/flutter (24862): 无法将字符串解码为 Latin1。\nI/flutter (24862): 此字体不支持 Unicode 字符。\nI/flutter (24862): 如果您想使用拉丁语以外的字符串字符串,请改用 TrueType (TTF) 字体。\nI/flutter (24862):请参阅https://github.com/DavBfr/dart_pdf/wiki/Fonts-Management \nI/flutter (24862):----- ----------------------------------------------------\nE/flutter (24862): [错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常:无效参数(字符串):包含无效字符。:“\xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\xa8”

\n
\n

pdf fonts flutter

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

如何在flutter中从ModalBottomSheet刷新ParentStatefulWidget的状态

我是颤振新手,我对小部件的状态没有正确的了解。我正在创建一个应用程序,在其中从主屏幕向购物车添加一些商品,然后通过单击 Cartbutton 我打开 ModalBottomSheet,用户还可以在其中修改其购物车商品,以及当用户关闭 ModalBottomSheet 而不继续操作时我想要的内容查看。它还会刷新主屏幕上选定的项目。我正在计算列表中每个项目的加法和减法。一切工作正常,唯一不工作的是主屏幕项目不会自动更新,直到我单击该项目然后它们工作正常。

基本上我想问如何在关闭 BottomModalSheet 时更新其 Parent 的状态。

以下是我打开 BottomModalSheet 的 Parent 代码的一部分:

  child: Material(
                          color: Colors.transparent,
                          child: InkWell(
                            splashColor: Colors.black12,
                            onTap: () async{

                               await scaffoldKey.currentState
                                  .showBottomSheet((context) =>
                                 StatefulBuilder(
                                   builder: (BuildContext context,StateSetter setState){
                                     return  Container(
                                       color: Colors.white,
                                       height: MediaQuery.of(context).size.height,

                                       child: Column(
                                         mainAxisAlignment: MainAxisAlignment.start,
                                         crossAxisAlignment: CrossAxisAlignment.start,
                                         children: <Widget>[
                                           Container(
                                             height: 200,
                                             color: Colors.black,
                                           ),
Run Code Online (Sandbox Code Playgroud)

这是 BottomModalSheet 的一部分,我在其中设置状态:

                                                        InkWell(
                                                         onTap: (){

                                                                               totalItems.remove(1);
                                                                               totalPrice.remove(int.parse(categoryItemList[index].OurPrice));
                                                                               cart.remove(categoryItemList[index]);
                                                                               setState(() {<----------------------------------------Here I'm calling setState()
                                                                                 if(categoryItemList[index].Counter<2)
                                                                                 {
                                                                                   categoryItemList[index].ShouldVisible = !categoryItemList[index].ShouldVisible;

                                                                                   if(totalItems.length<1)
                                                                                   {
                                                                                     showCart = !showCart; …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

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

标签 统计

flutter ×7

dart ×5

flutter-layout ×1

fonts ×1

pdf ×1