安卓系统
有没有办法更改Android Xamarin Forms Picker的文本颜色? (弹出的微调器,而不是显示所做选择的实际控件。)
我已经尝试过了,但Spinner始终为null。
public class CustomPickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
CustomPicker element = (CustomPicker)this.Element;
var nativePickerView = (global::Android.Widget.TextView) Control;
element.BackgroundColor = Color.Transparent;
nativePickerView.SetBackgroundColor(element.BackgroundColor.ToAndroid());
nativePickerView.SetCursorVisible(true);
nativePickerView.SetTextColor(Color.Black.ToAndroid());
int spinnerId = nativePickerView.Context.Resources.GetIdentifier("android:id/Spinner", null, null);
var spinnerView = (nativePickerView.FindViewById(spinnerId) as Spinner);
if (spinnerView != null) spinnerView.SetBackgroundColor(Color.Black.ToAndroid());
}
}
最佳答案
PickerRenderer内部使用NumberPicker在AlertDialog中显示选择。我不想说很多人在我想要简单自定义时对我说的话,但是您可能需要自定义渲染器。 Custom Renderers Guide。即使使用自定义渲染器,也很难进入私有领域,因此您可能希望对Xamarin.Forms进行“自行拥有”控制,从而使您可以更好地控制元素外观。