Android自定义View出现android.view.InflateException的一种解决方法
来源:互联网 发布:mac下思维导图 编辑:程序博客网 时间:2024/05/16 07:00
今天在开发的时候,在使用一个自定义的ViewPager的时候,程序出现了如下的错误:
android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class com.android.app.view.DispatchViewPager
详细报错如下图:
而我的出错代码如下:
自定义ViewPager:
public class DispatchViewPager extends ViewPager{ public DispatchViewPager(Context context){ super(context); } private DispatchTouch dispatchTouch; public interface DispatchTouch{ void dispatch(MotionEvent ev); } public void setDispatchTouch(DispatchTouch d){ dispatchTouch = d; } @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(dispatchTouch != null){ dispatchTouch.dispatch(ev); } return super.dispatchTouchEvent(ev); }}
xml中的引用:
<com.android.app.view.DispatchViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" />
上面的代码就会报这样的bug:Error inflating class com.android.app.view.DispatchViewPager,后来经过尝试,发现了这个bug的解决方法:在自己的自定义View中加入如下代码:
public DispatchViewPager(Context context,AttributeSet paramAttributeSet) { super(context,paramAttributeSet); }
也就是带AttributeSet属性的构造函数。
完整自定义代码如下代码如下:
public class DispatchViewPager extends ViewPager{ public DispatchViewPager(Context context){ super(context); } public DispatchViewPager(Context context,AttributeSet paramAttributeSet) { super(context,paramAttributeSet); } private DispatchTouch dispatchTouch; public interface DispatchTouch{ void dispatch(MotionEvent ev); } public void setDispatchTouch(DispatchTouch d){ dispatchTouch = d; } @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(dispatchTouch != null){ dispatchTouch.dispatch(ev); } return super.dispatchTouchEvent(ev); }}
总结:在出现了如上的bug之后,我们需要在自定义VIew中添加DispatchViewPager(Context context,AttributeSet paramAttributeSet) 构造函数即可。这应该是如上报错的一种解决方式,大家可以尝试一下~
1 0
- Android自定义View出现android.view.InflateException的一种解决方法
- ANDROID.VIEW.INFLATEEXCEPTION解决方法
- android.view.InflateException解决方法
- android 下自定义view, android.view.InflateException
- 自定义listview出现android.view.InflateException:Binary xml file line#
- 使用MaterialSearchView遇到android.view.InflateException解决方法
- android.view.inflateexception binary xml file line 异常的解决方法
- android.view.InflateException异常出现情况的总结
- android.view.InflateException
- android.view.InflateException
- android.view.InflateException
- android.view.InflateException
- android.view.inflateexception
- android.view.InflateException
- 自定义View出现Failed to inflate android.view.InflateException: Binary XML file line
- 自定义View时出现:"android.view.InflateException: Binary XML file line报错问题"
- 自定义view 出现android.view.InflateException: Binary XML file line #15: Error inflating class
- 关于android.view.inflateException异常的处理
- HDU1789
- 如何安装并破解使用DBVisualizer(dbvis9_0_7--64bit)
- 常见函数及运算符号归纳
- Android Studio 模板用法与自定义模板
- javascript去除字符串中所有标点符号和提取纯文本
- Android自定义View出现android.view.InflateException的一种解决方法
- 反射(2)之编译时类型与运行时类型
- 日常资料网址记录
- 工具类-- PhoneUtil 获取手机版本号
- 13 年的 Bug 调试经验总结
- 几种线程安全的单例模式
- uiwebview的基本使用
- HDU2021发工资咯
- Intersection of Two Arrays II