如何在颤抖的两个视图之间滚动

李宝城

在下面的视频和图片中,水平和垂直小部件按顺序排列。

如果滚动浏览,每个小部件都将单独移动,就像视频一样。

我想立刻采取行动。

请输入videoLink

https://firebasestorage.googleapis.com/v0/b/coody-f21eb.appspot.com/o/%E1%84%92%E1%85%AA%E1%84%86%E1%85%A7%E1 %86%AB%20%E1%84%80%E1%85%B5%E1%84%85%E1%85%A9%E1%86%A8%202020-09-28%20%E1%84%8B %E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%208.06.33.mov?alt = media&token = 8a9d3fd0-1256-4d92-9a57-

请输入Imglink

https://firebasestorage.googleapis.com/v0/b/coody-f21eb.appspot.com/o/KakaoTalk_Photo_2020-09-28-08-15-13.jpeg?alt=media&token=77cd7fba-5b62-4d68-b760- 8

import 'package:flutter/material.dart';
import 'element_homepage/contents_carousel.dart';
import 'element_homepage/gridView_of_homepage.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'product_detail.dart';

class HomeScreen extends StatefulWidget {
  var stopTrigger = 1;
  var unchanging ;
  List<bool>bool_list_each_GridSell =[];
  List<String> styleList = [];
  var tf_copy = [];

  final FirebaseUser user;
  HomeScreen(this.user);

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

class _HomeScreenState extends State<HomeScreen> {

  @override
  void initState() {
    super.initState();
    if(widget.stopTrigger == 1){
      setState(() {
        widget.unchanging = Firestore.instance.collection("uploaded_product").snapshots();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Scaffold(
        appBar: AppBar(title:Text("logo --- rec --- menu")),
        body: _bodyBuilder()


      ),
    );
  }

  Widget _bodyBuilder() {
    return Column(
        children: [
          ContentsCarousel(),
          _gridBuilder()
        ],
      );
  }


  Widget _gridBuilder() {
    return Expanded(
      child: StreamBuilder <QuerySnapshot>(
        stream: _commentStream(),
        builder: (BuildContext context, AsyncSnapshot snapshot){
          if(!snapshot.hasData){
            return Center(child:  CircularProgressIndicator());
          }
          var items =  snapshot.data?.documents ??[];
          var fF = items.where((doc)=> doc['style'] == "오피스룩").toList();
          var sF = items.where((doc)=> doc['style'] == "로맨틱").toList();
          var tF = items.where((doc)=> doc['style'] == "캐주얼").toList();
          fF.addAll(sF);
          fF.addAll(tF);
          widget.tf_copy.addAll(fF);
          if(widget.stopTrigger == 2 ){
            fF.shuffle();
            widget.unchanging = fF;
          }
          return GridView.builder(
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                crossAxisCount: 3,
                childAspectRatio: 0.6,
                mainAxisSpacing: 2.0,
                crossAxisSpacing: 2.0,),
              itemCount: fF.length,
              itemBuilder: (BuildContext context, int index) {
                for(var i=0; i<fF.length; i++){
                  widget.bool_list_each_GridSell.add(false);
                }
                return _buildListItem(context,widget.unchanging[index]);
              }
          );


        },
      ),
    );
  }

  Widget _buildListItem(context, document) {
    return
      InkWell(
          onTap: (){
            Navigator.push(context, MaterialPageRoute(builder: (context){
              return ProductDetail(widget.user, document);
            }));
          },
          child: Image.network(
              document['thumbnail_img'],
              fit : BoxFit.cover)
      );

  }

  Stream<QuerySnapshot> _commentStream() {
    widget.stopTrigger +=1;
    if(widget.stopTrigger == 2 ){
      return widget.unchanging;
    }
  }


}
字节我

我看到您正在尝试实现一种行为,其中GridView上的滚动导致整个屏幕上的滚动。

由于ContentsCarousel()_gridBuilder()中的Column,无法实现此行为。

我建议ColumnSingleChildScrollView小部件包装您的东西

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何找到颤抖中的两个日期之间的差异?

如何在QML中链接两个滚动视图?

SwiftUI 使用 Carousel UIScrollView 在两个视图之间滚动

如何在滚动视图中拥有两个行数为 0 的 uilabel

如何在水平滚动视图中在两个对象周围有相等的边距?

如何在Vaadin 7中使两个表之间同步滚动?

滚动时如何在两个元素之间保持固定距离

PostgreSQL:如何在双方的两个日期之间滚动加入?

如何在两个固定的小部件之间制作可滚动的小部件

如何一起滚动两个列表视图

如何在颤抖的视图之间发送和接收参数

如何在可见的两个视图之间切换?

如何在自动布局中使两个视图之间的距离可变

如何在RelativeLayout中的两个视图之间填充布局?

如何在RelativeLayout中填充两个视图之间的空间

如何在两个SwiftUI视图之间传递String数组作为绑定?

如何在Swift 3的两个视图之间划一条线?

如何在两个视图之间共享解析(UI路由器)

如何在extjs中的两个视图之间共享相同的viewModel?

如何在两个视图控制器之间传递(变化的)变量?

如何在SwiftUI中的两个视图模型之间共享发布的模型?

如何在颤抖中呈现一个空的视图?

奇怪的两个同时滚动视图

两个表之间的链接滚动

两个视图模型之间的通信

两个表之间的SQL视图

两个视图之间的文本

使两个按钮之间的视图居中

如何在Android中同步移动两个视图?