关于AutoLayout适配的问题,及解决办法
来源:互联网 发布:数据新闻手册 编辑:程序博客网 时间:2024/06/06 04:39
开始
本篇博客主要是记录一下,关于AutoLayout一个适配问题的解决办法。
怎么使用AutoLayout?
关于AutoLayout怎么使用,这个博客地址写的很详细(AutoLayout作者的博客)
http://blog.csdn.net/lmj623565791/article/details/49990941
适配时的问题
先说下问题:
我是按分辨率 768*1280去开发的
选择的布局视图是这个:
清单文件里是这么配置的:
<meta-data android:name="design_width" android:value="768" /> <meta-data android:name="design_height" android:value="1280" />
正常我再添加个依赖,再继承一下AutoLayoutActivity,然后我就可以在xml布局里面随便的用px了,后面它就会帮我适配各种屏幕。
结果出现了一个这样的问题:
我在布局里面是这么写的
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/background" android:orientation="vertical"> <LinearLayout android:layout_width="768px" android:layout_height="1140px"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/loading" /> </LinearLayout></LinearLayout>
在Android stuido上预览效果是这样的
运行到手机上是这样的:
运行到手机上后下面多了一块白的。
我的天呐!!不是说好的代码预览和运行在手机上的效果是一样的吗? 这种情况我该怎么开发啊?怎么才能让它和我开发时候的预览效果一样呢?
问题分析
不着急咱先说说这种情况的问题:
我们在android studio上预览效果的情况下 所说的1280的高度其实是包括 状态栏 和下面按钮栏的。好我们看下图就明白了
然后运行在手机上,AutoLayout认为的1280是这样的(看下图)
区别大家应该都清楚了,就是在android studio上预览时候的1280高度是包括状态栏和按钮栏的,然而到手机上就不包括了,手机上中间那块就有1280,我们回到最开始的代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/background" android:orientation="vertical"> <LinearLayout android:layout_width="768px" android:layout_height="1140px"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/loading" /> </LinearLayout></LinearLayout>
这的中间布局高度我写的是1140px 再加上 状态栏45px 和 按钮栏95px 在android studio预览效果正好是铺满全屏1280px,可是到了真实手机上 中间那块就有1280px 减去1140px 肯定下面就多出一块没有填充满。
不知道我说的是不是很明白?不明白也没关系,知道下面的解决办法就ok啦!
解决办法
预览的时候还用 768 * 1280
在AndroidManifest.xml文件中把这个配置改一下就ok了
<meta-data android:name="design_width" android:value="768" /> <meta-data android:name="design_height" android:value="1140" />
其他分辨率 可以自己算一下这个值,就是去掉你那个分辨率下的状态栏和按钮栏。
我的问题就这么解决啦,不知道对你用这个办法好不好使,好使的话点个赞评论一下吧亲!!!!
(不知道鸿洋能不能看见这个问题并解决一下就好了)
补充:后来又想到一个问题,就是如果返回和 home按键不是虚拟的,用这个办法效果会不会不一样了呢,经测试 没问题!!!!!
- 关于AutoLayout适配的问题,及解决办法
- 关于MemcacheDB PHP客户端的问题及解决办法
- 关于winows8系统下装多系统的问题及解决办法
- 关于在创建JFrame中遇到的问题及解决办法
- 关于Azure HDInsight资源调用的问题及解决办法
- 关于 python ImportError: No module named 的问题及解决办法
- 关于安装配置ambari时遇到的问题及解决办法
- 关于百度地图找不到jin文件的问题及解决办法
- Oracle中关于schema="workName"的问题及解决办法
- 关于UIbutton使用autoLayout的自适应的问题
- 一次关于更改UI导致autolayout系统崩溃的问题
- 项目适配iOS9遇到的一些问题及解决办法
- 项目适配iOS9遇到的一些问题及解决办法
- 项目适配iOS9遇到的一些问题及解决办法
- 项目适配iOS9遇到的一些问题及解决办法
- 项目适配iOS9遇到的一些问题及解决办法
- 项目适配iOS9遇到的一些问题及解决办法
- 项目适配iOS9遇到的一些问题及解决办法
- react native ios模拟器 常用操作
- '-'工具栏(CToolBarCtrl)
- Elasticsearch java api 基本搜索部分详解
- 集合类型-day01
- 百度地图API第二次搜索怎么把第一次地图上搜索的marker清除
- 关于AutoLayout适配的问题,及解决办法
- 燕麦云何洋开讲丨粤港澳大湾区来了,创业者们准备好了吗?
- 如何验证新老版本APK签名是否一致
- C++学习(31)
- 812C(二分)
- 提示插件
- cairo设置
- 图标不够大的时候添加背景,让每个图标看起来都一样大
- QPixmap之颜色摄取器