在 flutter 中滚动列表视图时剪辑填充

问题描述 投票:0回答:2

我在android中使用

clipToPadding
在水平和垂直滚动时剪辑填充。 flutter中有没有像clipToPadding这样的特定属性?行为看起来像:

   ListView.separated(
        padding: EdgeInsets.all(16),
        scrollDirection: Axis.horizontal,
        separatorBuilder: (context, index) => SizedBox(
          width: 8,
        ),
        itemBuilder: (BuildContext context, int index) {
          return Text(data[index].name);
        },
        itemCount: data.length,
      )
flutter flutter-layout flutter-listview
2个回答
0
投票

我不是本地 android 开发人员,但如果我确实理解了“clipToPadding”选项,您只想从 ListView 中删除填充并在其周围添加填充。

Container(
              height: 100.0,
              padding: EdgeInsets.symmetric(horizontal: 16.0),
              child: ListView.separated(
                scrollDirection: Axis.horizontal,
                separatorBuilder: (context, index) => SizedBox(
                  width: 8,
                ),
                itemBuilder: (BuildContext context, int index) {
                  return AspectRatio(
                    aspectRatio: 1.0,
                    child: Container(
                      color: Colors.grey[300],
                      child: Center(child: Text(index.toString())),
                    ),
                  );
                },
                itemCount: 20,
              ),
            ),

或使用容器(它只是为列表视图设置最大高度)+单独的填充:

Container(
              height: 100.0,
              child: Padding(
                padding: EdgeInsets.symmetric(horizontal: 16.0),
                child: ListView.separated(
                  scrollDirection: Axis.horizontal,
                  separatorBuilder: (context, index) => SizedBox(
                    width: 8,
                  ),
                  itemBuilder: (BuildContext context, int index) {
                    return AspectRatio(
                      aspectRatio: 1.0,
                      child: Container(
                        color: Colors.grey[300],
                        child: Center(child: Text(index.toString())),
                      ),
                    );
                  },
                  itemCount: 20,
                ),
              ),
            ),

0
投票

你只使用了 listView 的填充:

return ListView.builder(
      padding: const EdgeInsets.only(bottom: 100),
      scrollDirection: Axis.vertical,
      itemCount: snapshot.data!.results!.length,
      itemBuilder: (context, index) {
        return ItemSearch(
            onClick: () {}, movie: snapshot.data!.results![index]);
      });
© www.soinside.com 2019 - 2024. All rights reserved.