您的位置:首页 > 其它

A factory has already been set on this LayoutInflater

2017-05-03 17:31 411 查看
AppCompatActivity 已经设置过了,源代码如下:

public void installViewFactory() {
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
if (layoutInflater.getFactory() == null) {
LayoutInflaterCompat.setFactory(layoutInflater, this);
} else {
if (!(LayoutInflaterCompat.getFactory(layoutInflater)
instanceof AppCompatDelegateImplV9)) {
Log.i(TAG, "The Activity's LayoutInflater already has a Factory installed"
+ " so we can not install AppCompat's");
}
}
}
解决方法有两种,第一:继承Activity替代AppCompatActivity
第二:在super.oncreate()之前设置,如下,但这种可能存在问题,可以看大神的

http://blog.csdn.net/lmj623565791/article/details/51503977
SkinInflateFactory skinInfateFactory=new SkinInflateFactory();
LayoutInflaterCompat.setFactory(LayoutInflater.from(this),skinInflateFactory);
super.onCreate(savedInstanceState);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐