今天做了一个全屏显示的activity来显示一个网页webview,考虑到这个activity的复用,就把全屏显示作了判断,因为大多数情况不需要显示全屏,在显示H5游戏时才全屏显示,如是写下了如下片段:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundel = getIntent().getExtras();
String url = bundel.getString("url");
exam_url = bundel.getString("exam_url");
//设置内容
setContentView(R.layout.activity_xxorks);
WebView wv = (WebView)findViewById(R.id.webView_jxxx_id);
if(exam_url.equals("0")){
//全屏显示
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
((TextView) findViewById(R.id.layout_header_title_id)).setText("互动游戏");
xxx
}else{
xxxx
}
}
一运行出错: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
解决方法:设置全屏代码必须放在setContentView之前:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundel = getIntent().getExtras();
String url = bundel.getString("url");
exam_url = bundel.getString("exam_url");
if(exam_url.equals("0")){
//全屏显示
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
((TextView) findViewById(R.id.layout_header_title_id)).setText("互动游戏");
xxx
}else{
xxxx
}
//设置内容
setContentView(R.layout.activity_xxorks);
WebView wv = (WebView)findViewById(R.id.webView_jxxx_id);
}