在我的页面上,我使用的选取器将ItemSource绑定到3个可选项。当我从列表中选择某项或取消它时,焦点停留在选取器上,并允许我键入某些内容。虽然这不会影响所选的值,但可能会使用户感到困惑。有没有简单的方法可以阻止用户在此字段中输入数据?
piztneat1#
解决方案(或替代方法)是使用自定义渲染器禁用焦点:
internal class CustomPicker : PickerRenderer { public CustomPicker(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs<Picker> e) { base.OnElementChanged(e); EditText?.SetFocusable(ViewFocusability.NotFocusable); } }
2exbekwf2#
我已经做了一个样本测试,如果用户点击物理键盘,选择器的文本将被更改,但软键盘不会显示。如果你不想让选择器接受用户的输入,你可以像Cfun说的那样使用custom render,你可以只把Focusable属性设置为false,这样选择器就不会接受来自键盘的输入。
public class MyPickerRender : PickerRenderer { public MyPickerRender(Context context) : base(context) { } protected override void OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs<Picker> e) { base.OnElementChanged(e); Control.Focusable = false; } }
2条答案
按热度按时间piztneat1#
解决方案(或替代方法)是使用自定义渲染器禁用焦点:
2exbekwf2#
我已经做了一个样本测试,如果用户点击物理键盘,选择器的文本将被更改,但软键盘不会显示。
如果你不想让选择器接受用户的输入,你可以像Cfun说的那样使用custom render,你可以只把Focusable属性设置为false,这样选择器就不会接受来自键盘的输入。