Flutter 颤振:图像在滑动条中丢失

Flutter 颤振:图像在滑动条中丢失,flutter,dart,flutter-sliver,Flutter,Dart,Flutter Sliver,我和你一起工作。 上一页我有2页(搜索和详细信息), 在详细信息页面中,当我向下滚动并使图像不可见时出现问题,然后按下按钮返回,我的图像在搜索页面中丢失。但如果我向下滚动,然后再向上滚动,使图像可见,然后我按下后退按钮,我的图像不会丢失,仍然保持在那里。 这可能令人困惑,但您可以查看GIF了解更多详细信息。 你能帮我吗? 谢谢 这是细节。省道: 导入“包装:颤振/材料.省道”; 导入“包:flatter_news/model/Berita_model.dart”; 导入“package:flat

我和你一起工作。 上一页我有2页(搜索和详细信息), 在详细信息页面中,当我向下滚动并使图像不可见时出现问题,然后按下按钮返回,我的图像在搜索页面中丢失。但如果我向下滚动,然后再向上滚动,使图像可见,然后我按下后退按钮,我的图像不会丢失,仍然保持在那里。 这可能令人困惑,但您可以查看GIF了解更多详细信息。 你能帮我吗? 谢谢

这是细节。省道:
导入“包装:颤振/材料.省道”;
导入“包:flatter_news/model/Berita_model.dart”;
导入“package:flatter_news/widget/widget_builder.dart”;
类WartawanDetail扩展StatefulWidget{
伊德瓦塔万国际酒店;
最后一串甘巴瓦塔万;
最终字符串namaWartawan;
WartawanDetail({this.idWartawan,this.gambarWartawan,this.namaWartawan});
@凌驾
_WartawanDetailState createState()=>\u WartawanDetailState();
}
类_WartawanDetailState扩展状态{
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:自定义滚动视图(
条子:[
滑杆(
浮动:是的,
错,,
领先:IconButton(
图标:图标(图标。向左箭头),
onPressed:()=>Navigator.pop(上下文),
),
扩展高度:300.0,
标题:对,
flexibleSpace:FlexibleSpaceBar(
背景:英雄(
标签:widget.idWartawan,
子:容器(
装饰:盒子装饰(
图像:装饰图像(
图:AssetImage(widget.gambarWartawan),
安装:BoxFit.盖),
),
子:堆栈(
儿童:[
定位(
底部:10,
左:10,,
儿童:材料(
颜色:颜色。透明,
孩子:芯片(
背景颜色:Colors.blue,
标签样式:文本样式(颜色:Colors.white),
标签:文本(widget.namaWartawan),
),
),
),
定位(
底部:10,
右:10,,
儿童:材料(
颜色:颜色。透明,
孩子:芯片(
背景颜色:Colors.blue,
标签样式:文本样式(颜色:Colors.white),
标签:文本(“2贝里塔”),
),
),
),
],
),
),
),
),
行动:[
图标按钮(
图标:图标(更多图标),
按下时:()=>“”,
),
],
),
SliverFixedExtentList(
itemExtent:MediaQuery.of(context).size.height,
委托:SliverChildListDelegate(
[
容器(
填充:边缘设置。全部(8),
子项:ListView.builder(
收缩膜:对,
物理学:NeverscrollableScroll物理学(),
itemCount:beritas.length,
itemBuilder:newsBuilderHome),
),
],
),
)
],
),
);
}
}
这是我的搜索
Widget-wartawanBuilderSearch(BuildContext,int-index){
主题数据localTheme=Theme.of(上下文);
返回容器(
保证金:全部(8),
子:列(
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
扩大(
子:容器(
孩子:英雄(
标记:wartawans[index].idWartawan,
儿童:材料(
颜色:颜色。透明,
孩子:InkWell(
onTap:()=>Navigator.push(
上下文
页面转换(
类型:PageTransitionType.downToUp,
孩子:瓦塔旺德雷(
idWartawan:wartawans[index]。idWartawan,
甘巴瓦塔万:瓦塔万[索引]。甘巴瓦塔万,
namaWartawan:wartawans[索引]。namaWartawan,
),
),
),
孩子:圆环星(
背景颜色:Colors.red,
半径:50,
背景图片:
资产评估(瓦塔万[索引].gambarWartawan),
),
),
),
),
),
),
容器(
子对象:对齐(
对齐:对齐。左下角,
子:文本(
瓦塔万[索引]。纳马瓦塔万,
样式:localTheme.textTheme.caption
.copyWith(fontSize:14,fontWeight:fontWeight.bold),
溢出:TextOverflow.省略号,
),
),
)
],
),
);
}

您可以在单击图像的位置共享列表的代码吗?@AakashKumar当然可以,请查看我的更新问题。您好,我用您的代码和我自己的代码进行了尝试。奇怪的是,当我在4个月前这样做的时候,它工作得很好,但当我现在尝试的时候,它不工作了。这似乎是最新发布的颤振版本。看到这个了吗
import 'package:flutter/material.dart';
import 'package:flutter_news/model/Berita_model.dart';
import 'package:flutter_news/widget/Widget_builder.dart';

class WartawanDetail extends StatefulWidget {
  final int idWartawan;
  final String gambarWartawan;
  final String namaWartawan;
  WartawanDetail({this.idWartawan, this.gambarWartawan, this.namaWartawan});
  @override
  _WartawanDetailState createState() => _WartawanDetailState();
}

class _WartawanDetailState extends State<WartawanDetail> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomScrollView(
        slivers: <Widget>[
          SliverAppBar(
            floating: true,
            pinned: false,
            leading: IconButton(
              icon: Icon(Icons.arrow_left),
              onPressed: () => Navigator.pop(context),
            ),
            expandedHeight: 300.0,
            centerTitle: true,
            flexibleSpace: FlexibleSpaceBar(
              background: Hero(
                tag: widget.idWartawan,
                child: Container(
                  decoration: BoxDecoration(
                    image: DecorationImage(
                        image: AssetImage(widget.gambarWartawan),
                        fit: BoxFit.cover),
                  ),
                  child: Stack(
                    children: <Widget>[
                      Positioned(
                        bottom: 10,
                        left: 10,
                        child: Material(
                          color: Colors.transparent,
                          child: Chip(
                            backgroundColor: Colors.blue,
                            labelStyle: TextStyle(color: Colors.white),
                            label: Text(widget.namaWartawan),
                          ),
                        ),
                      ),
                      Positioned(
                        bottom: 10,
                        right: 10,
                        child: Material(
                          color: Colors.transparent,
                          child: Chip(
                            backgroundColor: Colors.blue,
                            labelStyle: TextStyle(color: Colors.white),
                            label: Text("2 Berita"),
                          ),
                        ),
                      ),
                    ],
                  ),
                ),
              ),
            ),
            actions: <Widget>[
              IconButton(
                icon: Icon(Icons.more_horiz),
                onPressed: () => "",
              ),
            ],
          ),
          SliverFixedExtentList(
            itemExtent: MediaQuery.of(context).size.height,
            delegate: SliverChildListDelegate(
              [
                Container(
                  padding: EdgeInsets.all(8),
                  child: ListView.builder(
                      shrinkWrap: true,
                      physics: NeverScrollableScrollPhysics(),
                      itemCount: beritas.length,
                      itemBuilder: newsBuilderHome),
                ),
              ],
            ),
          )
        ],
      ),
    );
  }
}

Widget wartawanBuilderSearch(BuildContext context, int index) {
  ThemeData localTheme = Theme.of(context);
  return Container(
    margin: EdgeInsets.all(8),
    child: Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: <Widget>[
        Expanded(
          child: Container(
            child: Hero(
              tag: wartawans[index].idWartawan,
              child: Material(
                color: Colors.transparent,
                child: InkWell(
                  onTap: () => Navigator.push(
                    context,
                    PageTransition(
                      type: PageTransitionType.downToUp,
                      child: WartawanDetail(
                        idWartawan:wartawans[index].idWartawan,
                        gambarWartawan: wartawans[index].gambarWartawan,
                        namaWartawan: wartawans[index].namaWartawan,
                      ),
                    ),
                  ),
                  child: CircleAvatar(
                    backgroundColor: Colors.red,
                    radius: 50,
                    backgroundImage:
                        AssetImage(wartawans[index].gambarWartawan),
                  ),
                ),
              ),
            ),
          ),
        ),
        Container(
          child: Align(
            alignment: Alignment.bottomLeft,
            child: Text(
              wartawans[index].namaWartawan,
              style: localTheme.textTheme.caption
                  .copyWith(fontSize: 14, fontWeight: FontWeight.bold),
              overflow: TextOverflow.ellipsis,
            ),
          ),
        )
      ],
    ),
  );
}