我有一個xamarin選擇器的項目列表,我想在iPhone上的「完成」按鈕和android上的「Oke」按鈕時移除選擇器。
我有刪除選取器的代碼。但我不知道可能通過什麼event_Handler。選擇器的完成按鈕的Event_Handler
代碼:
我有一個xamarin選擇器的項目列表,我想在iPhone上的「完成」按鈕和android上的「Oke」按鈕時移除選擇器。
我有刪除選取器的代碼。但我不知道可能通過什麼event_Handler。選擇器的完成按鈕的Event_Handler
代碼:
不幸的是,你不能在你的情況下,使用Android和iOS相同的事件,因爲:什麼它看起來像iPhone
Picker picker = new Picker
{
Title = "What's in the slot?",
VerticalOptions = LayoutOptions.CenterAndExpand
//HorizontalOptions = LayoutOptions.Center
};
private void Displaypickerview(int row, int column)
{
if (status == "filling board")
{
foreach (string text in pickerText)
{
picker.Items.Add(text);
}
foreach (string ore in oreLevels)
{
picker.Items.Add(ore);
}
picker.SelectedIndexChanged += (sender, args) =>
{
if (picker.SelectedIndex == -1)
{
}
else
{
//change value of cell and button
Picker picker = (Picker)sender;
int index = picker.SelectedIndex;
if (index < pickerText.Length)
{
board[row, column].Text = pickerText[index - 1];
}
else {
board[row, column].Text = oreLevels[index - 1 - pickerText.Length];
}
}
};
}
else if (status == "choosing item")
{
}
}
例
當前Picker控件在OK bu後發送Android上的SelectedIndexChanged事件tton被按下。然而,在iOS發送事件每當用戶滾動選擇器,讓它停在一個項目
它是已知的問題,我把報價從here。
您應該結合SelectedIndexChanged和Unfocus事件來實現您的目標。您可以在此主題在這裏找到一些解決方案 https://forums.xamarin.com/discussion/20847/picker-selection-event
UPD: 貌似我不明白你的問題的權利。如果我現在就做,那麼你必須使用自定義渲染器並在其中指定所需的邏輯。
對於iOS。創建繼承PickerRenderer的自定義渲染和實施類似的東西:
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
var extendedPicker = e.NewElement as ExtendedPicker;
if (extendedPicker == null) return;
var toolbar = new UIToolbar(new CGRect(0.0f, 0.0f, Control.Frame.Size.Width, 44.0f));
toolbar.Items = new[]
{
new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace),
new UIBarButtonItem("Done",
UIBarButtonItemStyle.Done,
delegate {
Control.ResignFirstResponder();
})
};
if (this.Control != null)
{
Control.InputAccessoryView = toolbar;
}
}
對於Andorid的看起來像它從箱子
Works無法刪除它在你的SelectedIndexChanged事件處理程序? – mm8
我嘗試過,但我的應用程序崩潰,出現空異常,並且每次用戶颳起時它都會關閉選取器 – Cing
關於哪一行代碼會發生異常? – mm8