2016-07-25 2 views
2

У меня есть требование, чтобы создать AlertDialog, который разделяется по вертикали на две зоны:Android AlertDialog Кнопка позиционирования

  1. Одна из этих зон (на правой стороне) должны иметь диалоговые кнопки (OK, Cancel и Set) внизу и другой макет поверх этих кнопок.
  2. В левой части этого диалога должен быть другой макет, скажем, изображение.

Вопрос в том, возможно ли иметь что-либо подобное или все предупреждения. Диалоги должны иметь все свои кнопки внизу? Я даже не знаю, с чего начать. Я пробовал посмотреть на класс AlertDialog, но мог видеть что-нибудь подходящее.

+1

взглянуть на это для начала: http://stackoverflow.com/questions/13341560/how-to-create-a-custom -dialog-box-in-android – Zaki

+0

Возможно [этот вопрос SO] (http://stackoverflow.com/questions/18352324/how-can-can-i-add-custom-buttons-into-an-alertdialogs-layout) может быть с некоторой помощью –

+0

Спасибо, @Zaki. Похоже на то, что я мог бы попробовать. – etilia

ответ

1

для этого вам не нужен AlertDialog, но да, вы можете сделать это с помощью AlertDialog. создать свой вид, а затем использовать AlertDialog.Builder без вызова setPositiveButton(), setNegativeButton() и т.д ..

AlertDialog alertDialog = new AlertDialog.Builder(context) 
     .setView(yourContentView) 
     .create(); 
+0

Спасибо, я думаю, это то, что мне нужно – etilia

0

Вы можете создать свой собственный макет диалогового - с этим 3 шага:

  1. Создать диалоговое окно пользовательского макет (XML-файл).
  2. Прикрепите макет к диалогу.
  3. Показать диалог.

Посмотрите here.

3

enter image description here

AlertDialog.Builder builder = new AlertDialog.Builder(mActivity, 
      R.style.MyAlertDialogStyle); 
    builder.setTitle(mActivity.getResources().getString(R.string.app_name)); 
    builder.setCancelable(false); 
    builder.setMessage(str_message); 
    builder.setPositiveButton(str_btn1, 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        if (listener != null) { 
         listener.onClick(null); 
        } 
       } 
      }); 
    if (str_btn2 != null) { 
     builder.setNegativeButton(str_btn2, 
       new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, 
             int i) { 
         if (listener2 != null) { 
          listener2.onClick(null); 
         } 
        } 
       }); 
    } 
    builder.show(); 

Edit: Пожалуйста, смотрите изображение выше. Вы получите результат следующим образом. Просто создать диалоговый стиль

Dialog Style в styles.xml

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <!-- Used for the buttons --> 
    <item name="android:textStyle">bold</item> 
    <item name="colorAccent">@android:color/holo_blue_bright</item> 
    <!-- Used for the title and text --> 
    <item name="android:textColorPrimary">@android:color/black</item> 
    <!-- Used for the background --> 
    <item name="android:background">@android:color/white</item> 
</style> 
+1

Спасибо, но мне нужны кнопки, чтобы быть в правом нижнем углу, и они не должны принимать полную ширину диалога. В настоящее время эта версия реализована, но для нее требуется настройка. – etilia

+0

посмотри на мой отредактированный ответ @etilia – abissa

+0

Привет, конечно, что, вероятно, принесут кнопки с правой стороны. Однако есть также требование, чтобы изображение охватывало всю область в левой половине диалогового окна. Таким образом, я думаю, что для этого конкретного сценария выбранный ответ более подходит. Я сохраню это, я думаю о будущем. Спасибо, @abissa. – etilia

Смежные вопросы