Как ограничить ширину GridView с помощью полосы прокрутки во Flutter?

Я пытаюсь отобразить полосу прокрутки с правой стороны ScrollView (в данном случае GridView), но ограничиваю ширину прокручиваемой области, при этом полоса прокрутки по-прежнему отображается с правой стороны. Я не вижу, как настроить положение полосы прокрутки относительно прокручиваемого

См. Этот DartPad в качестве примера.

В приведенном выше примере ScrollBar отображается непосредственно справа от дочерних элементов GridView, но я бы предпочел, чтобы он располагался полностью вправо. Я не могу найти никаких возможностей в конструкторе GridView, которые помогли бы мне в этом. Требуется ли для этого CustomScrollView или этого можно добиться с помощью обычного GridView?

2 ответа

Нужно ли, чтобы этот GridView имел ширину ровно 400 пикселей? Если в этом нет необходимости, вы можете установить ширину своего ConstrainedBox, например:

width: MediaQuery.of(context).size.width,

Тогда GridView будет иметь тот же размер, что и ваш экран, поэтому полоса прокрутки будет там, где вы хотите.

Исправление заключалось в том, чтобы поменять местами виджеты Center и Scrollbar.

До:

      Center
  Scrollbar
    ConstrainedBox

После:

      Scrollbar
  Center
    ConstrainedBox

https://dartpad.dev/09ddf64d254b0c331920cf970acc4447

Другие вопросы по тегам