【安卓开发】DrawerLayout+ToolBar报错:DrawerLayout must be measured with MeasureSpec.EXACTLY.
2017-03-08 14:41
1096 查看
一、说明
在使用ToolBar+DrawerLayout的时候,总是报如下的错误:DrawerLayout must be measured with MeasureSpec.EXACTLY.
搜索了那么多答案意思就是DrawerLayout的宽高不能是设置成
match_parent或者
wrap_content,只能设置成具体的数值,比如
320dp之类的。试了一下,确实是可以,但是:
其他人设置成
match_parent为什么都能正常?
直接设置成具体数值,很难适配所有尺寸的设备,显然行不通。
二、问题所在
后来在看第N遍代码时终于发现了问题,就是在设置Drawerlayout的第二个view时,本应该设置一个layout_gravity属性,但是我设置成了
gravity属性,正确的应该是下面这样:
android:layout_gravity="start"
layout_gravity和
gravity的区别是前者设置view本身相对父视图的位置,后者设置view视图里面控件的位置的。但不知道为什么这边会引起报这个错。其他人的情况不知道是怎样,我的是如此,希望对大家有用。
相关文章推荐
- java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY.
- ##报错:DrawerLayout must be measured with MeasureSpec.EXACTLY. - 在使用ToolBar+DrawerLayout可能会报这个错误 - 1,
- Android自学之路,DrawerLayout must be measured with MeasureSpec.EXACTLY.错误
- DrawerLayout must be measured with MeasureSpec.EXACTLY error
- DrawerLayout must be measured with MeasureSpec.EXACTLY.
- 关于java.lang.IllegalArgumentException: DrawerLayout must be measured with MeasureSpec.EXACTLY异常处理
- 非法参数异常- DrawerLayout 必须与 MeasureSpec.EXACTLY 测量
- 创建UICollectionView时出错UICollectionView must be initialized with a non-nil layout parameter
- iOS-UI之UICollectionView must be initialized with a non-nil layout parameter'解决方式
- 创建UICollectionView时出错UICollectionView must be initialized with a non-nil layout parameter
- 安卓开发——requestFeature() must be called before adding content
- 【React Native 安卓开发】----侧边栏的实现DrawerLayoutAndroid以及第三方框架react-native-side-menu的使用【第六篇】
- 安卓开发——报错:You must specifiy a layout in the include tag: <include layout="@layout/layoutID" />
- 安卓开发中自定义View之onMeasure(),onLayout(),onDraw()讲解(二)
- 安卓开发--左侧或右侧出来的popuwindows替代drawerlayout侧拉菜单
- 安卓开发中自定义View之onMeasure(),onLayout(),onDraw()讲解(一)
- UICollectionView must be initialized with a non-nil layout parameter
- UICollectionView must be initialized with a non-nil layout parameter
- 安卓开发中自定义View之onMeasure(),onLayout(),onDraw()讲解(三)
- Swift 关联Storyboard中的controller解决UICollectionView must be initialized with a non-nil layout parameter