У меня есть всплывающее окно AlertDialog с DatePicker и TimePicker. AlertDialog довольно длинный, поэтому вам нужно прокрутить вниз, чтобы заполнить все. Однако каждый раз, когда я щелкаю где-то, представление автоматически возвращается к началу AlertDialog, что делает невозможным мирное нажатие на Timeicker.
Есть ли способ остановить прокрутку назад при каждом нажатии что-то?
Вот код:
private void AddEventDialog(ListView listview, Marker marker, ArrayAdapter<string> adapter)
{
TextView name_tv = new TextView(this);
EditText name_et = new EditText(this);
TextView start_date_tv = new TextView(this);
TextView end_date_tv = new TextView(this);
DatePicker start_date_picker = new DatePicker(this);
DatePicker end_date_picker = new DatePicker(this);
TimePicker start_time_picker = new TimePicker(this);
TimePicker end_time_picker = new TimePicker(this);
LinearLayout ll = new LinearLayout(this);
ScrollView sv = new ScrollView(this);
AlertDialog.Builder ad = new AlertDialog.Builder(this);
name_tv.Text = "Nom :";
name_tv.TextSize = 18.0f;
start_date_tv.Text = "Début :";
start_date_tv.TextSize = 18.0f;
end_date_tv.Text = "Fin :";
end_date_tv.TextSize = 18.0f;
ll.Orientation = Orientation.Vertical;
ll.SetPadding(30, 0, 30, 0);
ll.CanScrollVertically(1);
ll.AddView(name_tv);
ll.AddView(name_et);
ll.AddView(start_date_tv);
ll.AddView(start_date_picker);
ll.AddView(start_time_picker);
ll.AddView(end_date_tv);
ll.AddView(end_date_picker);
ll.AddView(end_time_picker);
sv.AddView(ll);
ad.SetTitle("Ajout d'un événement");
ad.SetView(sv);
ad.SetPositiveButton("Ajouter", (senderAlert, args) => {
ToastUser("Événement ajouté !", ToastLength.Long);
DateTime dts = start_date_picker.DateTime.AddHours(start_time_picker.Hour);
dts = start_date_picker.DateTime.AddMinutes(start_time_picker.Minute);
DateTime dte = end_date_picker.DateTime.AddHours(end_time_picker.Hour);
dte = end_date_picker.DateTime.AddMinutes(end_time_picker.Minute);
EventCreation(name_et.Text, GetPlaceFromMarker(marker).Id, marker.Snippet, start_date_picker.DateTime, end_date_picker.DateTime);
adapter.Add(name_et.Text);
listview.Adapter = adapter;
dialog_child.Dismiss();
ManageEventsDialog(marker);
});
ad.SetNegativeButton("Annuler", (senderAlert, args) => {
});
ad.Show();
}