我想设计这样的布局:
肖像模式xml:
<RelativeLayout>
<ToolBar>
<ToolBar>
<TextView>
</TextView>
<VideoView>
<VideoView>
<Webview>
</Webview>
</RelativeLayout>
横向模式xml:
<RelativeLayout>
<VideoView>
<VideoView>
</RelativeLayout>
其他视图对于横向模式将不可见。提前致谢。我是android开发的新手。
答案 0 :(得分:1)
由于您的布局包含videoview,我认为您想在此页面上播放视频。
要阻止活动重新播放和视频重新启动,您应该将android:configChanges="orientation|screenSize"
添加到活动声明,而不是管理onConfigurationChanged
只需在onCreate`` than show hide them in
onConfigurationChanged```
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView and another onCreate logic code
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
textview = findViewById(R.id.textview);
webView = findViewById(R.id.webview);
videoView = findViewById(R.id.videoview);
updateLayout(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
updateLayout(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE);
}
private void updateLayout(boolean isLandscape) {
if (isLandscape) {
textview.setVisibility(View.GONE);
webview.setVisibility(View.GONE);
getSupportActionBar().hide();
} else {
textview.setVisibility(View.VISIBLE);
webview.setVisibility(View.VISIBLE);
getSupportActionBar().show();
}
}
答案 1 :(得分:0)
您可以为具有相同名称的两个不同方向创建两个不同的布局xml文件,并将文件存储为 layout
目录中的纵向模式以及 {中的横向版本layout-land
目录下的{1}} 目录。 我认为这样做比管理运行时的可见性