Android百分比布局(PercentRelativeLayout)嵌套NavigationView自定义宽度
16lz
2021-01-23
因为NavigationView必须嵌套在DrawerLayout里,当DrawerLayout不是根布局时,就没办法用match_parent等定义宽高,会报错。所以要重写DrawerLayout的onMeasure()方法:
public class MyDrawerLayout extends DrawerLayout { public MyDrawerLayout(@NonNull Context context) { super(context); } public MyDrawerLayout(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public MyDrawerLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { widthMeasureSpec = MeasureSpec.makeMeasureSpec( MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY); heightMeasureSpec = MeasureSpec.makeMeasureSpec( MeasureSpec.getSize(heightMeasureSpec), MeasureSpec.EXACTLY); super.onMeasure(widthMeasureSpec, heightMeasureSpec); }}
(以上代码copy的)
然后进行嵌套布局:
但是吧,NavigationView的宽度要比DrawerLayout小一点,待补充。
更多相关文章
- Android中自定义控件之飞入飞出布局及随机布局实现方式
- adroid 现行布局水平居中位置
- Android百分比布局
- 完美解决Android Studio在写XML布局的时候没有了控件代码提示的
- Android 子控件高度超出父布局的限制
- android开发 使用uses-sdk 导致布局不一样解决
- android studio无法在可视化页面预览布局文件
- Android五大UI布局的特有属性