Это на C# с Xamarin. Я использую кроссплатформенный код пользовательского интерфейса. Это похоже на использование файла .XAML, но я делаю это в коде.
var viewPickerAutoSaveTimer = new StackLayout();
viewPickerAutoSaveTimer.Orientation = StackOrientation.Horizontal;
viewPickerAutoSaveTimer.Padding = 13;
Label labelAutoSaveTimer = new Label()
{
VerticalOptions = LayoutOptions.Center,
Text = "Auto Save Timer"
};
Picker pickerAutoSaveTimer = new Picker()
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.Center,
SelectedIndex = 1,
Items = { "1", "2", "3" }
};
viewPickerAutoSaveTimer.Children.Add(labelAutoSaveTimer);
viewPickerAutoSaveTimer.Children.Add(pickerAutoSaveTimer);
Далее у меня есть следующий код ..
new TableSection ("AUTO SAVE") {
new SwitchCell {
Text = "Enable Auto Save:"
},
new ViewCell
{
View = viewPickerAutoSaveTimer
}
},
Строка рядом с таймером автосохранения должна отображать выбранный элемент в средстве выбора ... но это не так!
Ваш порядок инициализации объекта неверен, вам нужно назначить элементы выбора перед, вы можете установить элемент, который выбран из коллекции этих элементов:
Picker pickerAutoSaveTimer = new Picker()
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.Center,
Items = { "1", "2", "3" },
SelectedIndex = 1,
};
@DavidKachlon Тогда вы не даете ему достаточно места для отображения полной высоты элемента управления, закомментируйте viewPickerAutoSaveTimer.Padding = 13;
и дайте ему попробовать (вместе с правильным порядком инициализации)
учитывая, что вы сказали, что недостаточно места для отображения элементов управления на полную высоту, я внес изменения в ViewCell (увеличил высоту), и теперь у меня дисплей работает так, как я хочу. Спасибо!
@DavidKachlon Нет проблем
По-прежнему никуда. Даже если я коснусь окна выбора и сделаю выбор, он тоже не отобразит выбранный элемент!