这两天做项目时用到了自定义View,用到了LayoutInflater解析xml文件:
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 1
View views = inflater.inflate(R.layout.speed_dial_item, null); 2
第二句网上大部分都这样写,我也就copy的,(没有用setContentView),然后将这个自定义的view,在别的xml文件里边应用,可是怎么都不显示,无论我怎样改都不显示,三个构造方法都写了还是不显示,后来看源码发现,问题出在第二句上边,第二个参数表示自定义的xml文件的父View,如果设置为null,当然不显示了,要改为:
View views = inflater.inflate(R.layout.speed_dial_item, parentView);
就正常了。
总结一下:使用LayoutInflater要注意两点:
1.构造函数中一定要有两个参数的那个构造函数
2.如果没有用到setContentView来设置显示View,那么调用inflate方法时,第二个参数一定不要用null.
LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 1
View views = inflater.inflate(R.layout.speed_dial_item, null); 2
第二句网上大部分都这样写,我也就copy的,(没有用setContentView),然后将这个自定义的view,在别的xml文件里边应用,可是怎么都不显示,无论我怎样改都不显示,三个构造方法都写了还是不显示,后来看源码发现,问题出在第二句上边,第二个参数表示自定义的xml文件的父View,如果设置为null,当然不显示了,要改为:
View views = inflater.inflate(R.layout.speed_dial_item, parentView);
就正常了。
总结一下:使用LayoutInflater要注意两点:
1.构造函数中一定要有两个参数的那个构造函数
2.如果没有用到setContentView来设置显示View,那么调用inflate方法时,第二个参数一定不要用null.