kam*_*soc 5 fonts android xamarin.android xamarin xamarin.forms
我尝试在我的Android应用程序中更改Xamarin.Picker中的项目字体大小.在我的项目中,我使用BindablePicker继承自Picker类的东西.来源于此.
我花了一些时间做研究,我发现我应该创建一个PickerRenderer类并渲染Picker.
我的渲染器类:
public class BindablePickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
var picker = e.NewElement;
BindablePicker bp = (BindablePicker)this.Element;
if (this.Control != null)
{
var pickerStyle = new Style(typeof(BindablePicker))
{
Setters =
{
new Setter { Property = VisualElement.BackgroundColorProperty, Value = Color.Red }
}
};
picker.Style = pickerStyle;
}
}
}
Run Code Online (Sandbox Code Playgroud)
出于测试目的,我设置了backgroundColor Picker,它工作正常.但是,在我的PickerRenderer班级中,我只能访问Control属性类型的属性Android.Widget.EditText.
效果:
题
如何访问Picker项目并为其设置字体大小?这可能吗?
这是我的一个示例项目的存储库.
https://github.com/k8mil/PickerRendererXamarin
相关链接
https://developer.xamarin.com/api/type/Xamarin.Forms.Picker/
经过一些研究,我认为这对于通用选择器来说是不可能的。
您可能会更轻松地使用可单击的标签在表单代码中滚动自己的选择器控件,该标签会弹出一个列表以供选择。
我能够使用 Android styles.xml 文件中的样式设置日期或时间选择器的样式,但由于 Android 没有内置的通用选择器小部件,我想 Forms 正在滚动它自己的选择器列表,因为我找不到主题的对话框小部件可更改列表文本大小。
对于 DatePicker,我只需将以下内容添加到 styles.xml 中的主要样式元素中:
<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
Run Code Online (Sandbox Code Playgroud)
然后在 style.xml 中添加一个新的样式元素
<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
<item name="android:textSize">60sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
上面的代码确实改变了 DatePicker 的文本大小(不需要自定义渲染器)。此外,客户选择器渲染器有点用词不当……它实际上只是渲染显示所选项目的编辑文本字段,并允许在单击时打开选择器列表。
我知道这不是一个解决方案,而只是表明我在检查此内容时发现了什么,并建议如果您想要进行此类自定义,那么不使用表单选择器类型可能是最简单的。
| 归档时间: |
|
| 查看次数: |
4994 次 |
| 最近记录: |