- Отображение всплывающих элементов
- Отображение предупреждения
- Рекомендации для пользователей по задачам
- Отображение запроса
- AlertDialog and DialogFragment Example in Xamarin Android
- 1. Using AlertDialog in Xamarin.Android
- 2. Using DialogFragment in Xamarin.Android
- 3. Dialog fragment using OnCreateDialog()
- 4. Dialog fragment using OnCreateView()
- 5. Adding DialogFragment
- Xamarin android custom dialog
- 1. Использование AlertDialog в Xamarin.Android
- 2. Использование DialogFragment в Xamarin.Android
- 3. Использование диалога фрагмента при помощи OnCreateDialog()
- Custom Popup Dialog In Xamarin Android
- Introduction
Отображение всплывающих элементов
Отображение предупреждения, предоставление пользователю возможности выбора или отображение запроса — это обычная задача пользовательского интерфейса. Xamarin.Forms имеет три метода в Page классе для взаимодействия с пользователем через всплывающее окно: DisplayAlert , DisplayActionSheet и DisplayPromptAsync . Эти элементы визуализируются на каждой платформе с помощью соответствующих собственных элементов управления.
Отображение предупреждения
Все Xamarin.Forms Поддерживаемые платформы имеют модальное всплывающее окно для оповещения пользователя или запроса простых вопросов. Чтобы отобразить эти предупреждения в Xamarin.Forms , используйте DisplayAlert метод для любого из них Page . Следующая строка отображает простое сообщение:
В этом примере не предполагается получение сведений от пользователя. Предупреждение отображается в модальном режиме, и после его закрытия пользователь продолжает работать с приложением.
Метод DisplayAlert можно также использовать для получения ответа от пользователя. Для этого предлагаются две кнопки и возвращается значение типа boolean . Для получения ответа на предупреждение предоставьте надписи для обеих кнопок и примените к методу оператор await . После того как пользователь выберет один из вариантов, ответ возвращается в код. Обратите внимание на ключевые слова async и await в примере кода ниже.
DisplayAlert Метод также имеет перегрузки, принимающие FlowDirection аргумент, указывающий направление, в котором элементы пользовательского интерфейса поступают в пределах предупреждения. Дополнительные сведения о направлении потока см. в разделе локализация справа налево.
По умолчанию в UWP при отображении оповещения какие-либо ключи доступа, определенные на странице за предупреждением, могут быть активированы. Дополнительные сведения см. в разделе Висуалелемент Access Keys on Windows.
Рекомендации для пользователей по задачам
UIActionSheet — это стандартный элемент пользовательского интерфейса в iOS. Xamarin.Forms DisplayActionSheet Метод позволяет включать этот элемент управления в межплатформенные приложения, выменяя собственные альтернативы в Android и UWP.
Чтобы отобразить лист действий, используйте метод DisplayActionSheet с оператором await на любой странице Page , передав сообщение и надписи кнопок в виде строк. Этот метод возвращает надпись кнопки, нажатой пользователем. Вот простой пример.
Кнопка отображается по destroy -разному для других кнопок в iOS и может быть оставлена null или указана в качестве третьего строкового параметра. В следующем примере используется кнопка destroy .
DisplayActionSheet Метод также имеет перегрузку, которая принимает FlowDirection аргумент, указывающий направление потока элементов пользовательского интерфейса на листе действий. Дополнительные сведения о направлении потока см. в разделе локализация справа налево.
Отображение запроса
Чтобы отобразить запрос, вызовите метод DisplayPromptAsync в Any Page , передав заголовок и сообщение в качестве string аргументов:
Запрос отображается в модальном виде:
Если нажата кнопка ОК, то возвращаемый ответ возвращается в виде string . Если нажата кнопка Отмена, null возвращается значение.
Полный список аргументов для DisplayPromptAsync метода:
- title Тип string — заголовок, отображаемый в запросе.
- message Тип — string сообщение, отображаемое в командной строке.
- accept , типа string — это текст кнопки Accept. Это необязательный аргумент, значение по умолчанию которого — ОК.
- cancel , типа string — это текст для кнопки Отмена. Это необязательный аргумент, значение по умолчанию которого — Cancel.
- placeholder Тип — string текст заполнителя, отображаемый в запросе. Это необязательный аргумент, значение по умолчанию которого — null .
- maxLength , типа int — Максимальная длина ответа пользователя. Это необязательный аргумент, значение по умолчанию которого равно-1.
- keyboard Тип Keyboard — это тип клавиатуры, используемый для ответа пользователя. Это необязательный аргумент, значение по умолчанию которого — Keyboard.Default .
- initialValue тип — это string предварительно определенный ответ, который будет отображаться и который можно изменить. Это необязательный аргумент, значение по умолчанию которого — Empty string .
В следующем примере показано задание некоторых необязательных аргументов:
Этот код отображает предопределенный ответ 10, ограничивает число символов, которое может быть введено равным 2, и отображает цифровую клавиатуру для ввода данных пользователем:
По умолчанию в UWP при отображении запроса все ключи доступа, определенные на странице, расположенной за запросом, могут быть активированы. Дополнительные сведения см. в разделе Висуалелемент Access Keys on Windows.
Источник
AlertDialog and DialogFragment Example in Xamarin Android
Dialog is like any other window that pops up in front of current window, used to show some short message, taking user input or to ask user decisions. Unlike Toast , a dialog is generally used where user attention is mandate. Android supports several different ways to create a dialog such as AlertDialog and FragmentDialog . In this example we will cover all the aspect of AlertDialog and DialogFragment.
1. Using AlertDialog in Xamarin.Android
AlertDialog is the subclass of Dialog that can display one, two or three buttons. If you only want to display a String in this dialog box, use the SetMessage() method.
The following code snippet can be used to create a simple AlertDialog with two buttons Delete and Cancel.
The above code snippet will produce the output as shown in the following screenshot.
2. Using DialogFragment in Xamarin.Android
Since the release of Android 3.0 (API level 11), fragment can show as a dialog and called as DialogFragment . If you’re supporting older android versions, you can make use of fragment-compatibility support library.
To create a dialog fragment, we will be using DialogFragment class. This class is derived from the Fragment and behaves much like a fragment with all available fragment life cycle methods. Android recemends to use DialogFragment over AlerDialog.
You need to perfrom the following steps to create a DialogFragment
- Create a new class that extends from DialogFragment class.
- Like regular Fragments, override OnCreateView() callback to attach the dialog layout.
- Alternatively, you can override OnCreateDialog() method and return a Dialog instance. This method is used to port your old AlertDialog code without much of modification.
In this example, we will see both OnCreateView() and OnCreateDialog() callback.
3. Dialog fragment using OnCreateDialog()
The following code snipept shows how to create dialog by overriding OnCreateDialog() method.
4. Dialog fragment using OnCreateView()
DialogFragment is like any other fragment, the same lifecycle rules are applied. Now we have to override onCreateView method to attach the layout to view hierarchy and construct the dialog fragment.
Let us first define the layout for your fragment. In this example, I have used two TextViews and Button. My layout looks as follows:
Now let us inflate the layout from OnCreateView() method. My DialogFragment class looks as follows:
The above code snippet will produce the output as shown in the following screenshot.
5. Adding DialogFragment
We are pretty much done!. Add the following code snippet in your Activity to instantiate and display the dialog;
The above code snippet will produce the output as shown in the following screenshot.
Источник
Xamarin android custom dialog
Диалог подобен любому другому окну, которое выскакивает на фоне текущего, уже открытого. И он используется для показа определенных коротких сообщений, для предложения пользователю ввести какие-либо данные, а также для того, чтобы позволить ему принять некое решение исходя из доступных вариантов. В отличие от Toast, диалог, как правило, используется там, где обязательно требуется внимание пользователя. Система Android поддерживает разные способы для создания диалога, например, такие как AlertDialog и FragmentDialog. В этом примере мы рассмотрим все аспекты AlertDialog и DialogFragment.
1. Использование AlertDialog в Xamarin.Android
AlertDialog является подклассом Dialog, и он может отображать одну, две или три кнопки. Если нужно отобразить строку в этом диалоговом окне, используйте метод SetMessage().
Следующий код может быть использован для создания простого AlertDialog с двумя кнопками «Удалить» и «Отмена».
Приведенный выше код выведет на экран такое сообщение, как показано на следующем скриншоте.
2. Использование DialogFragment в Xamarin.Android
С момента выхода Android 3.0 (API уровня 11), фрагмент может показываться в виде диалога и называться в этом случае DialogFragment. Если Вы поддерживаете старые версии андроид, то можете использовать соответствующую библиотеку совместимости фрагментов.
С тем чтобы создать фрагмент диалога, мы используем класс DialogFragment. Этот класс наследует от Fragment и ведет себя практически так же, как он самый, то есть со всеми доступными методами его жизненного цикла. Android рекомендует использовать DialogFragment над AlerDialog.
Для того чтобы создать DialogFragment, необходимо выполнить следующие шаги:
- Создать новый класс, который наследует от класса DialogFragment.
- Как и в случае с обычными фрагментами, переопределить обратный вызовOnCreateView() для прикрепления диалогового макета.
- В качестве альтернативного варианта можно переопределить метод OnCreateDialog() и вернуть экземпляр Dialog. Этот метод используется для портирования старого кода AlertDialog без значительных модификаций.
В этом примере мы увидим оба обратных вызова OnCreateView() и OnCreateDialog().
3. Использование диалога фрагмента при помощи OnCreateDialog()
На следующем примере можно увидеть, как создается диалог посредством переопределения метода OnCreateDialog().
Источник
Custom Popup Dialog In Xamarin Android
Feb 19, 2020 · 3 min read
Introduction
In this article, we go step by step to build a custom popup dialog for Xamarin Android. The popup dialog is just a window that prompts to enter additional details. Where we can use the popup dialog means, in some cases, we want some decision from the user without changing the activity or screen.
First, create a simple Xamarin Android Application by going to New >> Select Android >> followed by clicking Next.
Here give the project name, organization name, app compatibility, and app theme, then click Create project.
Af t er the project creation, double click to open Main.axml. For that, Solution Explorer >> expand the Resources folder and Layout folder, double click to open Main.axml. Now, drag and drop to place one button, this page code is given below.
- android:orientation=”vertical”
- android:layout_width=”match_parent”
- android:layout_height=”match_parent”>
Now, add a new Layout named Popup.axml. For that, right-click the Layout Folder and select Add >> New and the new popup window will appear, select Layout and name as Popup.axml and click Add.
Next, open MainActivity.cs and add the following code to Invoke the popup dialog in the UI. For that, open Solution Explorer >> MainActivity.cs. This page code is given below. In that code, we are initializing the Alert Dialog object and set up the layout. We can access the layout widget properties by using the “window.FindViewById
(Resource.Id.widgetId)”, otherwise you’re trying to access directly, NullException will be thrown.
- using Android.App;
- using Android.OS;
- using Android.Support.V7.App;
- using Android.Views;
- using Android.Widget;
- using static Android.App.ActionBar;
- namespace CustomPopupLayout
- <
- [Activity(Label = “@string/app_name”, Theme = “@style/AppTheme”, MainLauncher = true)]
- public class MainActivity : AppCompatActivity
- <
- private Button btnshowPopup;
- private Button btnPopupCancel;
- private Button btnPopOk;
- private Dialog popupDialog;
- protected override void OnCreate(Bundle savedInstanceState)
- <
- base.OnCreate(savedInstanceState);
- // Set our view from the “main” layout resource
- SetContentView(Resource.Layout.Main);
- btnshowPopup = FindViewById (Resource.Id.btnPopup);
- btnshowPopup.Click += BtnshowPopup_Click;
- >
- private void BtnshowPopup_Click( object sender, System.EventArgs e)
- <
- popupDialog = new Dialog( this);
- popupDialog.SetContentView(Resource.Layout.activity_main);
- popupDialog.Window.SetSoftInputMode(SoftInput.AdjustResize);
- popupDialog.Show();
- // Some Time Layout width not fit with windows size
- // but Below lines are not necessery
- popupDialog.Window.SetLayout(LayoutParams.MatchParent, LayoutParams.WrapContent);
- popupDialog.Window.SetBackgroundDrawableResource(Android.Resource.Color.Transparent);
- // Access Popup layout fields like below
- btnPopupCancel = popupDialog.FindViewById (Resource.Id.btnCancel);
- btnPopOk = popupDialog.FindViewById (Resource.Id.btnOk);
- // Events for that popup layout
- btnPopupCancel.Click += BtnPopupCancel_Click;
- btnPopOk.Click += BtnPopOk_Click;
- // Some Additional Tips
- // Set the dialog Title Property — popupDialog.Window.SetTitle(“Alert Title”);
- >
- private void BtnPopOk_Click( object sender, System.EventArgs e)
- <
- popupDialog.Dismiss();
- popupDialog.Hide();
- >
- private void BtnPopupCancel_Click( object sender, System.EventArgs e)
- <
- popupDialog.Dismiss();
- popupDialog.Hide();
- >
- >
- >
In here, you can easily set alert dialog Title by using “AlertDialog.SetTitle” property.
Now run your Xamarin Android, your output will look like below.
Источник