代码之家  ›  专栏  ›  技术社区  ›  Google

当Listview被另一个小部件隐藏时,如何在零位置滚动Listview?

  •  2
  • Google  · 技术社区  · 7 年前

    enter image description here

    水平滚动的图像。另外,我还有另一个列表视图 在水平列表视图的底部显示图像。现在,当我 检查Listview数据进行水平滚动,最后到达 在另一个数据项的底部,我检查 listview使用垂直滚动,第一个listview是不可见的。这 仍然保持在最后一个位置,而不是零位置。 我该怎么做?

    我附上了我的代码和截图我想要什么?

    [![import 'package:flutter/material.dart';
    
    class HomePage1 extends StatefulWidget {
      @override
      _HomePageState createState() => _HomePageState();
    }
    
    class _HomePageState extends State<HomePage1> {
      BuildContext context;
    
      @override
      Widget build(BuildContext context) {
        this.context = context;
        // TODO: implement build
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          home: Scaffold(
              appBar: AppBar(
                centerTitle: true,
                backgroundColor: Colors.white,
                title: Text(
                  'Demo App',
                  style: TextStyle(color: Colors.black),
                ),
              ),
              body: SingleChildScrollView(
                scrollDirection: Axis.vertical,
                child: Column(
                  children: <Widget>\[
                    _buildTrandingUI(),
                    _buildcardwithimg('assets/blue.png', ''),
                    _buildcardwithimg('assets/blue.png', ''),
                  \],
                ),
              )),
        );
      }
    
      @override
      void initState() {
        super.initState();
      }
    
      //Design Sale UI
      _buildcardwithimg(String imgpath, String text) {
        return Container(
          height: 380,
          margin: const EdgeInsets.symmetric(vertical: 8.0),
          child: new Stack(
            children: <Widget>\[
              new Container(
                margin: const EdgeInsets.only(right: 8.0, left: 8.0),
                decoration: new BoxDecoration(
                  color: Colors.white,
                  shape: BoxShape.rectangle,
                  borderRadius: new BorderRadius.circular(8.0),
                  boxShadow: <BoxShadow>\[
                    new BoxShadow(
                      color: Colors.grey,
                      blurRadius: 10.0,
                      offset: new Offset(0.0, 10.0),
                    )
                  \],
                  image: DecorationImage(
                      fit: BoxFit.cover, image: new AssetImage(imgpath)),
                ),
                child: new Container(
                  alignment: Alignment.topLeft,
                  padding: const EdgeInsets.all(10.0),
                  child: Text(
                    text,
                    style: TextStyle(
                        color: Colors.white,
                        fontWeight: FontWeight.bold,
                        fontSize: 14.0),
                  ),
                ),
              ),
            \],
          ),
        );
      }
    
      //Desing Tranding UI
      _buildTrandingUI() {
        List<String> titlearr = \[\];
        titlearr.add('The Grunge Collection!');
        titlearr.add('On Point!');
        titlearr.add('A Fresh Edge To Every Wear');
        titlearr.add('Up to 50% Off');
    
        List<String> sbutitlearr = \[\];
        sbutitlearr.add('Born For the Road');
        sbutitlearr.add('Premium Bags That Steak The Spotlight');
        sbutitlearr.add('Printed Tees');
        sbutitlearr.add('Born For the Road');
    
        List<String> Traimgarr = \[\];
        Traimgarr.add('assets/grun.png');
        Traimgarr.add('assets/onpoint.png');
        Traimgarr.add('assets/grun.png');
        Traimgarr.add('assets/onpoint.png');
    
        return Container(
            height: 280.0,
            margin: const EdgeInsets.symmetric(vertical: 4.0),
            child: new Stack(
              children: <Widget>\[
                new Container(
                  margin: const EdgeInsets.only(left: 8.0, right: 8.0),
                  decoration: new BoxDecoration(
                      color: Colors.white,
                      shape: BoxShape.rectangle,
                      borderRadius: BorderRadius.circular(8.0),
                      boxShadow: <BoxShadow>\[
                        new BoxShadow(
                          color: Colors.grey,
                          blurRadius: 10.0,
                          offset: new Offset(0.0, 10.0),
                        )
                      \]),
                  child: new Container(
                    alignment: Alignment.topLeft,
                    padding: const EdgeInsets.all(10.0),
                    child: Text(
                      'Trending Now',
                      style: TextStyle(color: Colors.blueGrey),
                    ),
                  ),
                ),
                new Center(
                    child: new Container(
                  height: 245.0,
                  margin: const EdgeInsets.only(left: 10.0, right: 10.0, top: 20.0),
                  child: ListView.builder(
                      scrollDirection: Axis.horizontal,
                      itemCount: Traimgarr.length,
                      itemBuilder: (context, index) {
                        return Column(
                          crossAxisAlignment: CrossAxisAlignment.center,
                          mainAxisSize: MainAxisSize.min,
                          children: <Widget>\[
                            Container(
                              height: 190.0,
                              width: 280.0,
                              margin: EdgeInsets.all(10.0),
                              child: Image.asset(
                                Traimgarr\[index\],
                                fit: BoxFit.cover,
                              ),
                            ),
                            Text(
                              titlearr\[index\],
                              style: TextStyle(fontWeight: FontWeight.bold),
                            ),
                            Text(
                              sbutitlearr\[index\],
                              style: TextStyle(color: Colors.grey),
                            )
                          \],
                        );
                      }),
                ))
              \],
            ));
      }
    }][1]][1]
    
    0 回复  |  直到 7 年前