Theme.Dialog создает слишком маленький экран - PullRequest
4 голосов
/ 11 мая 2011

У меня есть активность с ListView, которая имеет:

android:theme="@android:style/Theme.Dialog"

в Манифесте. Когда я открываю его и когда у него только одна строка в ListView, окно, которое открывается, очень мало. Как сделать так, чтобы окно занимало весь экран?

Ответы [ 6 ]

7 голосов
/ 11 мая 2011

Используйте это в методе Activity для создания полноэкранного режима.

   @Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    setContentView(R.layout.myxml);

    LayoutParams params = getWindow().getAttributes(); 
            params.height = LayoutParams.MATCH_PARENT;
            params.width  = LayoutParams.MATCH_PARENT;
           getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
   } 
3 голосов
/ 27 февраля 2012

Я обнаружил, что установка размера окна работает, но вы должны сделать это чуть позже. В этом примере ширина окна установлена ​​на 90% от ширины экрана, и это делается в onStart() вместо onCreate():

@Override
protected void onStart() {
   super.onStart();
   // In order to not be too narrow, set the window size based on the screen resolution:
   final int screen_width = getResources().getDisplayMetrics().widthPixels;
   final int new_window_width = screen_width * 90 / 100; 
   LayoutParams layout = getWindow().getAttributes();
   layout.width = Math.max(layout.width, new_window_width); 
   getWindow().setAttributes(layout);
}
1 голос
/ 11 мая 2011

Аналогично ответу от PravinCG, но это можно сделать одной строкой в ​​onCreate () ...

getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
0 голосов
/ 23 апреля 2013

Боже! Я понял ! Проблема в том, что размеры полей не вычисляются в окне. Таким образом, если вы установите отступ макета в 0 и переместите эту часть в отступ макета, проблема будет решена.

0 голосов
/ 01 марта 2013

Просто небольшое обновление.Использовал MATCH_PARENT вместо устаревшего FILL_PARENT.Ответ PravinCG отлично сработал для меня.

0 голосов
/ 12 сентября 2011

Используйте предложенный код перед вызовом setcontentview ().Это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...