setContentView() 不足以在布局之间切换?

Ete*_*ner 3 android android-layout

我有 2 个布局。

程序启动时,第一个加载(WebView)很好。

当用户选择菜单项时,第二个也会加载(一个简单的布局):

setContentView(R.layout.simple);
LinearLayout ll = (LinearLayout) findViewById(R.id.simple_layout);
Run Code Online (Sandbox Code Playgroud)

它所做的只是在后台处理某些内容的同时显示图像。处理完成后,它会尝试(通过 Handler)切换回它刚刚遮住的 WebView。

setContentView(R.layout.main);
Run Code Online (Sandbox Code Playgroud)

切换似乎发生了,但 webview 是空白的

这是为什么?setContentView()切换回第一个布局还不够,就像切换到第二个布局正常一样?

And*_*ris 6

我使用这种方法:在主程序中:

private LinearLayout mainview;
private LinearLayout playerview;
Run Code Online (Sandbox Code Playgroud)

在 onCreate 中:

LayoutInflater inflater = LayoutInflater.from(this);
setContentView(R.layout.main);
mainview = (LinearLayout) this.findViewById(R.id.main);
playerview = (LinearLayout) inflater.inflate(R.layout.player, null);
Run Code Online (Sandbox Code Playgroud)

然后你可以打电话

setContentView(mainview);
Run Code Online (Sandbox Code Playgroud)

setContentView(playerview);
Run Code Online (Sandbox Code Playgroud)

无论你什么时候想要。您只需要两个布局 xml 文件,每个布局一个。这比 Fragments 或其他方法简单得多。

出于某种原因,我不必夸大我开始的主要视图,只需夸大其他视图。我认为这是因为 setContentView() 必须在调用时为您扩充视图。