主题对话框创建太小的屏幕



我在ListView上有一个活动,它有:

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

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

活动的 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);
   } 

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

类似于 PravinCG 的答案,但可以在 onCreate() 中用一行完成...

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

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

只是一个小更新。用MATCH_PARENT,而不是已弃用的FILL_PARENT。PravinCG的回答对我来说很好用。

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

相关内容

  • 没有找到相关文章

最新更新