Cupertino Picker textStyle 颤动
CupertinoPicker textStyle flutter
我是 flutter 的新手,我需要帮助。
我正在创建一个应用程序,用户可以在其中通过 CupertinoPicker.
select 数据
选择器工作正常,但我想更改其样式。
目前的风格是that, but I want it to be like that.
不幸的是我不明白该怎么做,我读了 this 但我做不到,我想更改 selected 元素的颜色和大小,未 select 元素的颜色和线条的颜色。
但是我不知道怎么办。
谁能帮我理解一下?
代码是这样的 :
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,
);
}
我知道这个解决方案很冗长,但它有效:
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
。
可以使用这样的主题来设置 CupertinoPicker
和 CupertinoDatePicker
的样式:
return MaterialApp(
theme: ThemeData(
cupertinoOverrideTheme: CupertinoThemeData(
textTheme: CupertinoTextThemeData(
dateTimePickerTextStyle: TextStyle(color: Colors.blue, fontSize: 16),
pickerTextStyle: TextStyle(color: Colors.blue, fontSize: 12),
)
)
)
)
用另一个称为 CupertinoTheme() 的小部件包装 CupertinoPicker()
作为
CupertinoTheme(
data: CupertinoThemeData(
textTheme: CupertinoTextThemeData(
pickerTextStyle: TextStyle(//Your normal TextStyling)
),
),
child:CupertinoPicker(//Your Cupertino Picker)
)
我是 flutter 的新手,我需要帮助。
我正在创建一个应用程序,用户可以在其中通过 CupertinoPicker.
select 数据选择器工作正常,但我想更改其样式。
目前的风格是that, but I want it to be like that.
不幸的是我不明白该怎么做,我读了 this 但我做不到,我想更改 selected 元素的颜色和大小,未 select 元素的颜色和线条的颜色。
但是我不知道怎么办。
谁能帮我理解一下?
代码是这样的 :
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,
);
}
我知道这个解决方案很冗长,但它有效:
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
。
可以使用这样的主题来设置 CupertinoPicker
和 CupertinoDatePicker
的样式:
return MaterialApp(
theme: ThemeData(
cupertinoOverrideTheme: CupertinoThemeData(
textTheme: CupertinoTextThemeData(
dateTimePickerTextStyle: TextStyle(color: Colors.blue, fontSize: 16),
pickerTextStyle: TextStyle(color: Colors.blue, fontSize: 12),
)
)
)
)
用另一个称为 CupertinoTheme() 的小部件包装 CupertinoPicker() 作为
CupertinoTheme(
data: CupertinoThemeData(
textTheme: CupertinoTextThemeData(
pickerTextStyle: TextStyle(//Your normal TextStyling)
),
),
child:CupertinoPicker(//Your Cupertino Picker)
)