XML布局如下

  <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
		<CustomView
			.../>
</com.google.android.material.appbar.AppBarLayout>

运行时报错

 Caused by: android.view.InflateException: Binary XML file line #行号: Error inflating class <unknown>
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
        at android.view.LayoutInflater.createView(LayoutInflater.java:645)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:861)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:426)

去掉AppBarLayout中的主题
android:theme=“@style/ThemeOverlay.AppCompat.Dark.ActionBar”

最近的项目是使用的andoidx,开始报错时,我以为是没有导入desgin包,结果导入之后,还是报错,错误如下: Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout 1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Controls控件 自定义控件(Custom Control):继承自 Control,主要用于开发windows控件的最基本的类,比如 Text,Button 控件 2 要开发自己的控件的几种方法[1] 复合控件(Composite Controls):将现有的各种控件组合起来,形成一个新的控件,来满足用户的需求。 扩展控件(Extended Controls)
详解Android自定义控件属性 可以看到QQ上的ToolBar其实就是一个自定义的view,可以看到不同的界面就是简单地修改了文字而已,在第二张与第三张尤其的明显,我们就仿QQ的这个Toolbar设置一个自定义控件 在开始之前,首先了解一下官方是如何实现一个控件的,比如说一个Linearlayout 它不是有layout_width和layout_height这两个属性吗?其实,这两个属性就是官方定义的 官方的操作其实就是继承了一个ViewGroup,Linear
xml里面使用MaterialButton的时候报错报错信息如下: Caused by: android.view.InflateException: Binary XML file line #141: Binary XML file line #141: Error inflating class com.google.android.material.button.MaterialButton at android.view.LayoutInflater.inflate(Layo
我想做一个折叠式标题栏。 在使用Material Design 时,会用到这些标签,例如CoordinatorLayoutAppBarLayout,Toolbar,NestedScrollView以及CardView。 我也跟着网上许多教程去做,添加了教程上的依赖和标签,但是最后还是各种报错。 那些教程都是好几年前的,可能这么多年来更新.
Caused by: android.view.InflateException: Binary XML file line #23: Binary XML file line #2: Error inflating class LinerLayout 根据打印出来的错误显示,是因为某个布局XML文件的第23行出现问题,第23行嵌套的布局文件的第二行的LinerLayout出现问题,检查发现少了...
出现Error inflating class com.google.android.material.tabs.TabLayout这个错误网络上有的解决方案大多数是换掉主题,但是试了之后发现基本没用,我这里是这样改的把theme替换为: android:theme="@style/Theme.MaterialComponents.Light.NoActionBar" 加了之后可以,但是会出默认的一个白色背景,可以使用这个属性添加到xml里面: app:backgroundTint,当然也可以指定bac
2. 在自定义控件类中重写OnPaint方法,实现控件的绘制。 3. 在自定义控件类中重写OnMouseDown、OnMouseUp、OnMouseMove等方法,实现控件的交互。 4. 在自定义控件类中触发事件,以响应用户的操作。 5. 在使用自定义控件的窗体中,订阅自定义控件的事件,以执行相应的操作。 希望这个回答能够帮到你。