Как установить высоту и ширину диалогового окна предупреждений в Android?

Вот мой код:

@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    context = this;    

    AlertDialog alertChoice = new AlertDialog.Builder(context).create();
    alertChoice.setTitle("Title");
    alertChoice.setView(ViewDialogScreen("Test"));    
    alertChoice.show();    
  }
  private View ViewDialogScreen(String strText) {
    LinearLayout llay = new LinearLayout(context);
    llay.setLayoutParams(new LayoutParams(320, 400));
    TextView tv = new TextView(context);
    tv.setText(strText);
    llay.addView(tv);
    return llay;
  }

введите здесь описание изображения

Я получил вывод, как указано выше.

  1. Мне нужно показать AlertDialog в полноэкранном режиме / 95% размера экрана.
  2. Мне нужно обработать больше полей в файле Dialog.
  3. Как включить HorizontalScrollview в AlertDialog?

person Finder    schedule 07.04.2011    source источник


Ответы (3)


чтобы получить поведение прокрутки, добавьте окружающий ScrollView в свой макет, что сделает ваш метод ViewDialogScreen следующим:

private View ViewDialogScreen(String strText) {
    ScrollView scroll = new ScrollView(context);
    scroll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    LinearLayout llay = new LinearLayout(context);
    llay.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    TextView tv = new TextView(context);
    tv.setText(strText);
    scroll.addView(llay);
    llay.addView(tv);
    return scroll;
}

Теперь попробуйте добавить еще несколько полей, и он должен прокручиваться.

person Michael Rose    schedule 07.04.2011
comment
Я уже пробовал это. Я могу прокручивать только по вертикали, но мне нужно прокручивать по горизонтали. Когда я добавляю HorizontalScroll, он не работает. Затем после установки LayoutParams я получил только тот же размер экрана. - person Finder; 07.04.2011
comment
Если вам нужна горизонтальная прокрутка, замените ScrollView на HorizontalScrollView, и она автоматически добавит горизонтальную прокрутку при достижении максимальной ширины. Однако в настоящее время нет виджета, позволяющего одновременно прокручивать по горизонтали и вертикали (погуглите). Но диалог будет растягиваться по вертикали насколько это возможно. - person Michael Rose; 07.04.2011
comment
Спасибо . У меня есть горизонтальная прокрутка. Но мне нужно показывать оповещения в полноэкранном режиме. - person Finder; 07.04.2011
comment
Насколько я пробовал, я не нашел другого решения, кроме как просто позволить ему растянуться... извините, что я ничем не помогу на данный момент. Если вам действительно нужен полноэкранный режим, попробуйте создать новую активность. - person Michael Rose; 07.04.2011
comment
Спасибо за вашу помощь Майкл Роуз. - person Finder; 07.04.2011
comment
@karthick Единственное решение, которое я придумал после некоторых исследований, описано здесь. в котором используется Dialog вместо AlertDialog: Dialog alertChoice = new Dialog(context, android.R.style.Theme_Light); alertChoice.setTitle("Title"); alertChoice.setContentView(ViewDialogScreen("TestTestTest")); alertChoice.show(); - person Michael Rose; 07.04.2011
comment
Здорово!! Большое спасибо, Майкл Роуз. - person Finder; 07.04.2011

Я не уверен в этом, но вы можете установить свой собственный макет для диалога. См. мой ответ Android: диалоговое окно закрывается без вызова отклонения

person Vivek    schedule 07.04.2011
comment
В приведенном выше коде я могу установить свой собственный макет, но размер предупреждения очень мал. Мне нужно показать, что в полноэкранном режиме/указанном размере макета - person Finder; 07.04.2011
comment
вы можете указать размер в xml. это? - person Vivek; 07.04.2011
comment
Для дизайна экрана я использую только Java. Но и здесь я указываю размер LinearLayout... - person Finder; 07.04.2011

Если вы хотите настроить AlertDialog, вам нужно создать Пользовательский Dialog.

person Wroclai    schedule 07.04.2011