Intereting Posts
Как проверить, находится ли приложение на переднем плане или в фоновом режиме У меня возникли проблемы с добавлением OpenCV в новый Android-проект Как подключиться к нескольким базам данных firebase из приложения Android Как отличить, если данный Контекстный объект является Контекстом Деятельности или Сервиса? Отмена AsyncTask через некоторое время Не удалось отладить библиотечные проекты с помощью ADT v14 – Источник не найден Как добавить значки на панели инструментов MenuItem Icons Неиспользуемые ресурсы андроидного lint из библиотечного модуля используются в приложении TextInputLayout: как дать отступы или поля для подсказки? Сделать Android TextView невидимым до нажатия кнопки? Правильное отслеживание ссылок на установку в Play Маркете Показать предупреждение в широковещательном приемнике после перезагрузки системы Как ссылаться на android: значения силы тяжести в файле ресурсов? Последнее доступное время любого файла в Android Загрузка ресурсов изображения в виде RGB 565

Кнопка создания материала

Я пытаюсь найти пример кода для реализации новых диалогов дизайна материалов для

Сложенные кнопки полной ширины

Может ли кто-нибудь помочь мне с примером кода Введите описание изображения здесь

Solutions Collecting From Web of "Кнопка создания материала"

Я использую это, и он отлично работает для меня:

https://github.com/afollestad/material-dialogs

Вот демонстрационная версия: https://play.google.com/store/apps/details?id=com.afollestad.materialdialogsample (в том числе сложенные кнопки)

Вы можете добиться этого, используя ТОЛЬКО AppCompat, проверьте мой способ обхода:

Код import android.support.v7.app.AlertDialog;

AlertDialog.Builder builder; builder = new AlertDialog.Builder(context, R.style.StackedAlertDialogStyle); builder.setTitle("Title"); builder.setMessage("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc dignissim purus eget gravida mollis. Integer in auctor turpis. Morbi auctor, diam eget vestibulum congue, quam arcu pulvinar dui, blandit egestas erat enim non ligula." + " Nunc quis laoreet libero. Aliquam consectetur nibh eu arcu eleifend efficitur."); builder.setPositiveButton("Positive Button", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setNeutralButton("Neutral Button", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.setNegativeButton("Cancel Button", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); AlertDialog alertDialog = builder.create(); alertDialog.show(); try{ final Button button = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); LinearLayout linearLayout = (LinearLayout) button.getParent(); linearLayout.setOrientation(LinearLayout.VERTICAL); } catch(Exception ex){ //ignore it } 

Стиль

 <style name="StackedAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="buttonBarButtonStyle">@style/StackedButtonBarButtonStyle</item> </style> <style name="StackedButtonBarButtonStyle" parent="Widget.AppCompat.Button.ButtonBar.AlertDialog"> <item name="android:layout_gravity">right</item> </style> 

результат

Диалоговое окно с установленным оповещением

Вот как я работаю в своем приложении, используя ТОЛЬКО библиотека AppCompat. Вы можете любое количество опций

 String[] mOptionsArray = new String[]{"Option 1", "Option 2"}; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setTitle("Cool! title"); builder.setMessage("Cool! message"); LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.dialog_list_view, null); ListView listView = (ListView) view.findViewById(R.id.list_view); listView.setAdapter(new ArrayAdapter<>( getContext(), R.layout.dialog_list_item, R.id.button, mOptionsArray )); listView.setDivider(null); listView.setOnItemClickListener(mOnItemClickListener); builder.setView(view); return builder.create(); } 

dialog_list_view.xml

 <?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="8dp" android:paddingLeft="16dp" android:paddingRight="16dp" /> 

dialog_list_item.xml

 <?xml version="1.0" encoding="utf-8"?> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/button" style="@style/Widget.AppCompat.Button.Borderless.Colored" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" android:clickable="false" android:focusable="false" android:gravity="right|center_vertical" android:paddingRight="8dp" android:paddingLeft="8dp" android:text="Button" android:textAllCaps="true" /> 

Ссылка: http://www.materialdoc.com/flat-button/ , https://material.io/guidelines/components/dialogs.html#dialogs-specs , https://material.io/guidelines/components/buttons .html # кнопка стиль

Диалог со сложными кнопками полной ширины