Theme.Dialog创建的屏幕太小

时间:2011-05-11 18:54:56

标签: android themes

我有一个ListView活动:

android:theme="@android:style/Theme.Dialog"
在清单中

当我打开它并且它在ListView中只有一行时,打开的窗口非常小。 如何让窗口占据整个屏幕?

6 个答案:

答案 0 :(得分:7)

在活动的onCreate方法中使用此功能,使其全屏显示。

   @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);
   } 

答案 1 :(得分:3)

我发现设置窗口大小确实有效,但是你必须稍后再做。在此示例中,窗口宽度设置为显示宽度的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);
}

答案 2 :(得分:1)

与PravinCG的回答类似,但可以在onCreate()中使用一行...

getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);

答案 3 :(得分:0)

在setcontentview()调用之前使用建议的代码。它会起作用。

答案 4 :(得分:0)

只是一个小小的更新。使用MATCH_PARENT而不是弃用的FILL_PARENT。 PravinCG的答案对我很有帮助。

答案 5 :(得分:0)

Yeezz!我想到了 !问题是边距大小不是在窗口中计算的。因此,如果将布局边距设置为0并将该部分移动到布局的填充,则问题将得到解决。