Как вызвать ListView с помощью CustomScrollView и отобразить все элементы? - PullRequest
1 голос
/ 11 июля 2020

У меня есть ListView, разделенный разделителем и вызываемый, как показано ниже. Я назвал все элементы, но на моем экране обрезана последняя плитка. Я пробовал добавить SliverPadding вокруг списка, но это не помогает и еще больше обрезает список. Это код для моего ListView:

  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: <Widget>[
          Padding(
            padding: const EdgeInsets.only(top: 80.0),
            child: CustomScrollView(slivers: <Widget>[
              SliverToBoxAdapter(
                child: Padding(
                  padding: EdgeInsets.only(
                      top: MediaQuery.of(context).size.height * 0.09,
                      bottom: MediaQuery.of(context).size.height * 0.015,
                      left: 18.0),
                  child: Text("Puppies",
                      style: khomeStyle.copyWith(color: kOrange, fontSize: 27)),
                ),
              ),
              SliverFillRemaining(
                child: ListView.separated(
                    itemCount: 10,
                    //shrinkWrap: true,
                    physics: NeverScrollableScrollPhysics(),
                    //padding: EdgeInsets.all(0),
                    separatorBuilder: (BuildContext context, int index) {
                      return Divider();
                    },
                    itemBuilder: (BuildContext context, int index) {
                      return ListTile(
                          isThreeLine: false,
                          leading: ClipRRect(
                            borderRadius: BorderRadius.circular(12.0),
                            child: Container(
                              child: Image.network(
                                  'https://www.thesprucepets.com/thmb/LhWrTxh5MaOb_6IY-fgLxH75SI8=/2121x1193/smart/filters:no_upscale()/golden-retriever-puppy-in-grass-923135452-5c19243546e0fb000190737c.jpg'),
                            ),
                          ),
                          title: Row(
                            children: <Widget>[
                              Text(
                                "Helllo",
                                style: khomeStyle.copyWith(
                                    fontSize: 17,
                                    color: kOrange,
                                    fontWeight: FontWeight.w600),
                              ),
                            ],
                          ),
                          subtitle: Text(
                            'This is a message',
                            style: khomeStyle.copyWith(
                                fontSize: 15,
                                color: Colors.black.withOpacity(0.7),
                                fontWeight: FontWeight.w300),
                          ));
                    }),
              ),
            ]),
          ),
        ],
      ),
    );
  }

Вот как выглядит ListView: https://i.stack.imgur.com/vyL2x.png

1 Ответ

1 голос
/ 12 июля 2020

Если вы не ищете Щепки, попробуйте следующий код. это будет прокручиваться до последнего элемента, и ничего не будет обрезано.

Widget build(BuildContext context) {
  return Scaffold(
    body: Padding(
      padding: const EdgeInsets.only(top: 80.0),
      child: SingleChildScrollView(
        child: ListView.separated(
            itemCount: 10,
            shrinkWrap: true,
            physics: NeverScrollableScrollPhysics(),
            separatorBuilder: (BuildContext context, int index) {
              return Divider();
            },
            itemBuilder: (BuildContext context, int index) {
              return ListTile(
                  isThreeLine: false,
                  leading: ClipRRect(
                    borderRadius: BorderRadius.circular(12.0),
                    child: Container(
                      child: Image.network(
                          'https://www.thesprucepets.com/thmb/LhWrTxh5MaOb_6IY-fgLxH75SI8=/2121x1193/smart/filters:no_upscale()/golden-retriever-puppy-in-grass-923135452-5c19243546e0fb000190737c.jpg'),
                    ),
                  ),
                  title: Row(
                    children: <Widget>[
                      Text(
                        "Helllo",
                        style: khomeStyle.copyWith(
                            fontSize: 17,
                            color: kOrange,
                            fontWeight: FontWeight.w600),
                      ),
                    ],
                  ),
                  subtitle: Text(
                    'This is a message',
                    style: khomeStyle.copyWith(
                        fontSize: 15,
                        color: Colors.black.withOpacity(0.7),
                        fontWeight: FontWeight.w300),
                  ));
            }),
      ),
    ),
  );
}
...