首页
随机
最近更改
特殊页面
社群首页
参数设置
关于WHY42
免责声明
WHY42
搜索
用户菜单
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁Android landscape”︁的源代码
←
Android landscape
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
虽然我们可以将UI设计的尽可能的响应式,但是也可以为横屏应用单独进行布局达到更好的效果。横屏布局是通过layout-land文件夹中的同名layout文件实现的。 = 创建landscape布局= 在新版的Android Studio中,默认生产的工程中是没有layout-land文件夹的,我们也不必手动创建这样的文件夹。在design界面,可以快捷的创建横屏布局: [[File:create_land_layout.png|600px|create land layout]] = 代码中的实现= 值得注意的是,虽然land的布局文件已经加上了,但我发现我的界面在旋转的时候并没有生效(竖屏的时候旋转屏幕),还是显示的竖屏的设计界面,研究了一下发现问题所在: <syntaxhighlight lang="xml"> <activity android:name=".SplashActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@style/Theme.AppCompat.NoActionBar"> </syntaxhighlight> 可以看出android:configChanges中有orientation这一个mask,意味着当屏幕旋转时,安卓设备不会自己去处理这个事件,所以也就没有生效。解决方案有两种: 一个是删掉这个android:configChanges中的orientation选项,这样旋转屏幕的时候,android会销毁掉activity并重新创建一个,当然这时候如果有一些数据需要保存的话也就没有了。 另一个是保留这个选项,在代码中处理: <syntaxhighlight lang="java"> @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.activity_splash); } </syntaxhighlight> 这样不会销毁这个activity。 [[File:land_layout.png|600px|land layout]]{style="height:200px;width:400px"} [[File:portrait_layout.png|600px|portrait layout]]{style="width:200px"} [[Category:Android]] [[Category:Mobile]]
返回
Android landscape
。