flutter 抖动-滚动时Listview的子项位于小部件上方[重复]

tvz2xvvm  于 2023-01-14  发布在  Flutter
关注(0)|答案(1)|浏览(110)
    • 此问题在此处已有答案**:

Scrollable ListView bleeds background color to adjacent widgets(1个答案)
10个月前关闭。
Refer this video
这是我的代码,它简单的使用列表视图的建设者。滚动列表视图后,是去意外落后于上述行小部件。任何建议,以小部件应使用列表视图建设者代替?

Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisSize: MainAxisSize.max,
              children: [
                Row(
                  children: [
                    Text(
                      'Sorted By',
                      style: Theme.of(context).textTheme.caption?.copyWith(
                          color: AppColors.labelText, fontSize: 14),
                    ).paddingForOnly(right: 20),
                    sortButtons()
                  ],
                ),
                Text(
                  'List of Report',
                  style: Theme.of(context)
                      .textTheme
                      .bodyText1
                      ?.copyWith(color: AppColors.profileLabel),
                ).paddingForOnly(top: 30, bottom: 10),
                Flexible(
                    child: 
                    ListView.builder(
                        itemBuilder: (context, index) => ListTile(
                              onTap: () {
                                Application.customNavigation(
                                    context: context,
                                    path: ReportDetailScreen.route);
                              },
                              tileColor: AppColors.listTileBG,
                              shape: RoundedRectangleBorder(
                                  borderRadius: BorderRadius.circular(15)),
                              leading: Image.asset(AssetsPath.calendarSymbol),
                              title: Text(
                                'Monday, Aug 05',
                                style: textTheme.bodyText2?.copyWith(
                                    color: Colors.black,
                                    fontWeight: FontWeight.w500),
                              ),
                            ).paddingWithSymmetry(vertical: 4))),
                //Expanded(child: reportList(context))
              ],
            ),

谢谢

uwopmtnx

uwopmtnx1#

这种行为是正常的,因为只有ListView.builder是可滚动的。要使其他所有控件也可滚动,可以使用SingleChildScrollView。将它包裹在Column周围,这将使整个Column可滚动。需要注意的是,您必须将ListView.builder()shrinkWrap属性设置为true,否则将得到错误。

SingleChildScrollView(
  child: Column(
    children: [
      ...,
      ListView.builder(
        shrinkWrap: true,
        ...
      ),
    ],
  )
);

相关问题