DrawerLayout must be measured with MeasureSpec.EXACTLY error

前端 未结 12 2446
独厮守ぢ
独厮守ぢ 2020-12-03 16:54

I am trying to implement a Navigation drawer, but I keep getting this error. I saw the similar questions but did not work for me. I have the following layout activity_main2.

12条回答
  •  我在风中等你
    2020-12-03 17:27

    You could try to set Exactly measurements explicitly always like below:

    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);
        }
    }
    

提交回复
热议问题