КупертиноПикер textStyle флаттер

Я новичок, и мне нужна помощь.

Я создаю приложение, в котором пользователь может выбирать данные с помощью CupertinoPicker.

Сборщик работает нормально, но я бы хотел изменить его стиль.

В настоящее время стиль такой, но я хочу, чтобы он был таким.

К сожалению, я не могу понять, как это сделать, я прочитал это, но я не могу этого сделать, я хотел бы изменить цвет и размер выбранного элемента, цвет невыбранных элементов и цвет линий.

Но я не знаю, как я могу это сделать.

Может кто-нибудь помочь мне понять, пожалуйста?

Код такой:

Container(

          ˙child: _showCupertinoPicker(
           context,
           book[currentPage].orari.map((orario) {
           return Center(
                     child: Text(orario,
                     style: TextStyle(color: CupertinoColors.activeBlue

                         )));
           }).toList())),
.
.
.
.

_showCupertinoPicker(BuildContext context, List<Widget> orariWidget) {
  return CupertinoPicker(
    backgroundColor: Colors.white,
    onSelectedItemChanged: (value) {},
    itemExtent: 40.0,
    children: orariWidget,
  );
}

0 ответов

Можно стилизовать CupertinoPicker а также CupertinoDatePicker используя такую ​​тему:

ThemeData(
  cupertinoOverrideTheme: CupertinoThemeData(
    textTheme: CupertinoTextThemeData(
      dateTimePickerTextStyle: TextStyle(color: Colors.blue, fontSize: 16),
      pickerTextStyle: TextStyle(color: Colors.blue, fontSize: 12),
     )
   )
  )
)

Оберните CupertinoPicker() другим виджетом, известным как CupertinoTheme() как

CupertinoTheme(
     data: CupertinoThemeData(
         textTheme: CupertinoTextThemeData(
             pickerTextStyle: TextStyle(//Your normal TextStyling)
         ),
     ),
     child:CupertinoPicker(//Your Cupertino Picker)
)

Я знаю, что это подробное решение, но оно работает:

final cupertinoTheme = CupertinoTheme.of(context);
// Do your customising here:
final pickerTextStyle =
    cupertinoTheme.textTheme.pickerTextStyle.copyWith(fontSize: 18.0, color: Colors.cyan);
final textTheme =
    cupertinoTheme.textTheme.copyWith(pickerTextStyle: pickerTextStyle);
return CupertinoTheme(
  data: cupertinoTheme.copyWith(textTheme: textTheme),
  child: yourPickerGoesHere,
);

CupertinoPicker берет текстовый стиль из CupertinoTheme.of(context).textTheme.pickerTextStyle. Все, что мы здесь делаем, это обновляемpickerTextStyle с нашими настройками.

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