简体   繁体   English

如何在 flutter 中显示 ListTile

[英]How to display ListTile in flutter

I want to do my interface like the image I show.我想做我的界面,就像我展示的图像一样。 I want to display the image the put a container to over the image.我想显示将容器放在图像上的图像。 Now I have a problem with the ListTile I want to show did not come out.现在我有一个问题,我想显示的 ListTile 没有出来。

在此处输入图像描述

Here is my code:这是我的代码:

Scaffold(
      appBar: AppBar(
        title: Text('Detail'),
      ),
      body: Column(children: <Widget>[
      Expanded(
        child: 
          Stack(children: <Widget>[
            Container(
            decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.only(topLeft: Radius.circular(40), topRight: Radius.circular(40)),), 
            child: Image.assets('images/photo.png'),
          ),
          Container(
            margin: EdgeInsets.only(top: 170),
            child: Stack(alignment: Alignment.topCenter, children: <Widget>[
            Container(
            decoration: BoxDecoration(
            borderRadius: BorderRadius.only(topLeft: Radius.circular(40), topRight: Radius.circular(40)), 
            color: Colors.white),
          )
          ],
          ), 
          ),
          Positioned(top: 200, left: 8, 
          child: Column(children: <Widget>[
            ListTile(title: Text('Title'), subtitle: Text(''),)
          ],)
          )
        ],
        ),
        )
      ],)

    );

Anyone can help me?任何人都可以帮助我吗?

Replace you code like this像这样替换你的代码

 return Scaffold(
   appBar: AppBar(
     title: Text("title text"),),
     body: Stack(children: <Widget>[
      Positioned(
        top: 0,
              child: Image.network("https://upload.wikimedia.org/wikipedia/commons/6/6d/Good_Food_Display_-_NCI_Visuals_Online.jpg",
                fit: BoxFit.cover,
                height: 200,
                width: MediaQuery.of(context).size.width,
                 ),
      ),

      Positioned(
        top: 190,
              child: Container(
                width: MediaQuery.of(context).size.width,
               height: 600,
                decoration: BoxDecoration(
                  color: Colors.white,
                  borderRadius: BorderRadius.only(topLeft:Radius.circular(20), topRight:Radius.circular(20)) ),
                  child: ListView(
                    shrinkWrap: true,
                    children: <Widget>[
                    ListTile(title: Text("Title 1"),),
                    ListTile(title: Text("Title 1"),),
                    ListTile(title: Text("Title 1"),),
                  ],) ,),
      )
     ],),
     
     );

when scrolling inside Positioned widget you have to give all the positions and scroll direction in listview在定位小部件内滚动时,您必须在列表视图中提供所有位置和滚动方向

Positioned(
        top: 190,
        bottom: 0,
        right: 0,
        left: 0,
              child: SizedBox(
                              child: Container(
                      width: MediaQuery.of(context).size.width,
                    // height: MediaQuery.of(context).size.height- 190,
                      decoration: BoxDecoration(
                        color: Colors.white,
                        borderRadius: BorderRadius.only(topLeft:Radius.circular(20), topRight:Radius.circular(20)) ),
                        child: ListView.builder(
                            scrollDirection: Axis.vertical,
                            itemCount: 20,
                            itemBuilder: (BuildContext context, int index){
                         return ListTile(title: Text("Title $index"),);

                            },
                          
                            physics: AlwaysScrollableScrollPhysics(),
                            shrinkWrap: true,
                 ) ,),
              ),
      )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM