Флаттер, как изменить размер элемента списка? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть список строк (горизонтальный), которые представляют собой тексты

, и код выглядит примерно так

return ListView(
  children: <Widget>[
    Padding(
      padding: EdgeInsets.all(0.0),
      child: GestureDetector(
        onTap: () {
          setState(() {
            if (pageNumber != null) {
              pageNum = pageNumber - 1;
              _bigSizeNum = pageNumber - 1;
              _rightIndex = false;
              _rowListContainerWidth =
                  MediaQuery.of(context).size.width * 0.04;
              _rowListContainerHeight =
                  MediaQuery.of(context).size.height * 0.08;
            }
          });
        },
        child: AnimatedContainer(
          duration: Duration(milliseconds: 140),
          width: _rowListContainerWidth,
          height: _rowListContainerHeight,
          margin: _rightIndex
              ? EdgeInsets.only(
                  top: 0,
                )
              : EdgeInsets.only(
                  top: 0,
                  left: MediaQuery.of(context).size.width * 0.04,
                  right: MediaQuery.of(context).size.width * 0.04),
          padding: EdgeInsets.all(12.0),
          decoration: BoxDecoration(
            border: Border.all(
              width: 0.6,
              color: Colors.white70,
            ),
            borderRadius: BorderRadius.all(
              Radius.circular(4),
            ),
            color: Colors.transparent,
          ),
          child: Center(
            child: Text(
              pageNumber.toString(),
              softWrap: false,
              textAlign: TextAlign.center,
              overflow: TextOverflow.ellipsis,
              maxLines: 2,
              style: TextStyle(
                color: Colors.white,
                fontSize: 16.0,
              ),
            ),
          ),
        ),
      ),
    ),
  ],
);

, а размер _rowListContainerWidth вообще не работает

, потому что я угадайте, что единственный itemExtent принимает решение о том, как установить размер ширины!

enter image description here

мое решение temperor было сделать поле, чтобы оно выглядело как меньший

но пробел так раздражает, я думаю, это все из-за itemExtent

Я хочу, чтобы пробелы имели одинаковый размер между элементами. спасибо

1 Ответ

0 голосов
/ 07 апреля 2020

сделать поле только с левой стороны

          margin: _rightIndex
              ? EdgeInsets.only(
                  top: 0,
                )
              : EdgeInsets.only(
                  top: 0,
                  left: MediaQuery.of(context).size.width * 0.04)
...