CupertinoPicker文字样式颤动

时间:2019-07-30 10:51:14

标签: flutter flutter-layout flutter-cupertino cupertinopicker

我是flutter的新手,我需要帮助。

我正在创建一个应用程序,用户可以在其中通过CupertinoPicker选择数据。

选择器工作正常,但我想更改其样式。

当前样式类似于that,但我希望它类似于that

不幸的是,我不明白该怎么做,我读了this,但我做不到,我想更改所选元素的颜色和大小,未更改的元素的颜色和线条的颜色。

但是我不知道该怎么做。

有人可以帮我理解吗?

代码是

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,
  );
}

3 个答案:

答案 0 :(得分:2)

使用另一个称为CupertinoTheme()的小部件包装CupertinoPicker()

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

答案 1 :(得分:1)

我知道这个解决方案很冗长,但是可以用:

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

答案 2 :(得分:0)

可以使用如下主题设置CupertinoPickerCupertinoDatePicker的样式:

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