<Picker
// selectedValue={this.state.language}
selectedValue="USD"
style={{ height: 50, width: 100, marginRight: 10, justifyContent: 'flex-start' }}
itemStyle={{ fontFamily: 'Roboto_thin' }}
// onValueChange={(itemValue, itemIndex) =>
// this.setState({ language: itemValue })
// }
>
<Picker.Item label="USD" value="java" />
<Picker.Item label="ETB" value="js" />
</Picker>
我想更改选择器项目的字体,并添加带有fontFamily值的属性itemStyle。但是选择器项目的字体不会更改。
答案 0 :(得分:2)
正如罗比所说,您可以使用itemStyle
道具。
不过,itemStyle
是仅由 iOS平台支持的高级property
,如React Native docs here所示。因此,对于样式选择器项目,例如,更改<fontFamily
,颜色等只能使用原生Android样式(对于 now )。然后它将在两个平台上都适用。
请牢记这一点,您将在资源中添加一个新的<style>
标签到style.xml
文件中,该文件通常位于路径android/app/src/main/res/values/styles.xml
中。并将其设置在AppTheme
上以添加的样式进行计数,例如:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:spinnerItemStyle">@style/SpinnerItem</item>
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem</item>
</style>
<!-- Item selected font. -->
<style name="SpinnerItem" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:fontFamily">casual</item>
</style>
<!-- Dropdown options font. -->
<style name="SpinnerDropDownItem" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:fontFamily">casual</item>
<item name="android:padding">8dp</item>
</style>
<resources>
有用的链接:
答案 1 :(得分:0)
该代码应该可以工作,但是我对您提供的字体名称感到好奇。如果您将Google字体用作链接资产,则除非您自己重命名,否则应为Roboto-Thin
。仔细检查链接到您的项目的字体名称是否正确。
要注意的另一件事是,Android默认字体是 Roboto,因此您可以通过fontWeight
属性获得它的精简版本:
itemStyle={{ fontWeight: '100' }} // <-- 100 is thin, 300 is light, 400 would be regular