Android百分比布局(PercentRelativeLayout)嵌套NavigationView自定义宽度
16lz
2022-01-12
因为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小一点,待补充。
更多相关文章
- VideoView控件可以手动改变大小
- Android(安卓)Drawable 分类笔记
- Android(安卓)TextView 属性设置
- android java 小型知识点
- 33、Android(安卓)中子fragment控制父对象改变布局
- 总结Android多分辨率支持
- android:layout_weight属性
- 剖析Android(安卓)线性布局中的权重(layout_weight)(解答疑惑)
- Android(安卓)alertdialog的自定义添加按钮和添加点击