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()切换回第一个布局还不够,就像切换到第二个布局正常一样?
我使用这种方法:在主程序中:
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() 必须在调用时为您扩充视图。
| 归档时间: |
|
| 查看次数: |
7035 次 |
| 最近记录: |