我有一个ListView活动:
android:theme="@android:style/Theme.Dialog"
在清单中当我打开它并且它在ListView中只有一行时,打开的窗口非常小。 如何让窗口占据整个屏幕?
答案 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并将该部分移动到布局的填充,则问题将得到解决。