使用LayoutInflate(视图扩充器)
来源:互联网 发布:圣剑网络 奥特曼 编辑:程序博客网 时间:2024/05/16 13:53
使用fragment遇到一个奇怪的问题:
09-02 01:08:48.885: E/AndroidRuntime(12216): FATAL EXCEPTION: main
09-02 01:08:48.885: E/AndroidRuntime(12216): Process: com.astuetz.viewpager.extensions.sample, PID: 12216
09-02 01:08:48.885: E/AndroidRuntime(12216): java.lang.StackOverflowError
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.widget.TextView.jumpDrawablesToCurrentState(TextView.java:4789)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5488)
09-02 01:08:48.885: E/AndroidRuntime(12216): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5
很奇怪,很奇怪,经过各种不服,原来错在这里:
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_text, container);//错误代码Log.d("测试", container+" ");return view;}
此处正确写法:
View view = inflater.inflate(R.layout.fragment_text, container,false);
或
View view = inflater.inflate(R.layout.fragment_text, null,false);
第一个参数,布局文件,需要扩建成view的xml文件,第二个参数,view的根view(root),第三个参数,是否将该view依附到根view上。
此处通过解析xml布局文件生成view,这个view就没有什么根view,没有什么parent,它本身就是根view,所以不需要依附到哪个地方,依附到container当然就崩溃了。
于是知道此处:
View view = inflater.inflate(R.layout.fragment_text, container);
等同于
View view = inflater.inflate(R.layout.fragment_text, container,true);
但是,我奇怪的是,不知什么原因,大概是此错误写法与第三方库搅合在一起,还报了这么个奇怪的红:
这是,通过xml创建出来的view已经依附到了一个parent或根view了,再次parent.addView(view)导致的异常抛出。
抛出的源码为:
private void addViewInner(View child, int index, LayoutParams params, boolean preventRequestLayout) { if (child.getParent() != null) { throw new IllegalStateException("The specified child already has a parent. " + "You must call removeView() on the child's parent first."); } }
- 使用LayoutInflate(视图扩充器)
- LayoutInflate(布局填充器)的使用
- LayoutInflate的使用
- LayoutInflate的使用
- Android LayoutInflate(一)
- LayoutInflate
- LayoutInflate
- layoutinflate.inflate方法的使用
- Android LayoutInflate.Inflate(二)
- Android LayoutInflate.SetFactory( )(三)
- 简单(simple)扩充视图树(TreeView)
- 物料评估类型视图扩充
- Web扩充控件(一)-------AspNetPager使用
- LayoutInflate源码分析之如何解析视图树
- SAP 批量扩充会计和成本视图
- SAP 批量扩充会计和成本视图
- android LayoutInflate.inflate源码分析及使用区分
- Web扩充控件(二)-------树型控件使用
- java的框架和集合
- FFT模板
- Mac平台重新设置MySQL的root密码
- 40条Android开发优化建议
- 自己写bootloader笔记7---Makefile分析
- 使用LayoutInflate(视图扩充器)
- PsychoPy入门_02_按键等待&反应时
- 关于使用opencv的提速(二)(多线程问题,openMP)
- POJ2503 Babelfish 二分 TWT Tokyo Olympic 1 COMBO-1
- leetcode22. Generate Parentheses 栈和dfs的运用
- web图片
- Java网络编程(二)
- 自己写bootloader笔记6---boot.c分析(u-boot向内核传递参数及跳转到内核)
- nginx最大并发连接数的思考:worker_processes、worker_connections、worker_rlimit_nofile