我正在构建一个基于用户请求返回<div class="col-sm-12">
<p class="bg-info">Basic Information</p>
</div>
的库项目。但是,我在库项目中创建的Views
不使用我在我的应用程序中使用的主题。
例如,如果库项目返回Views
,其中包含Fragment
,那么即使应用程序正在使用它,EditText
也不会使用AppCompat主题。
以下是我用来在库项目中膨胀EditText
的基类的相关部分:
Views
public abstract class AbsInputFieldViewController<T extends AbsInputField> {
protected Context getContext(){
return mFragment.getActivity().getApplicationContext();
}
protected LayoutInflater getInflater(){
return (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public abstract View getView(AbsInputField field, Fragment fragment);
}
在几个子类中实现,它使用getView()
中的LayoutInflater
从布局xml中膨胀getInflater()
实例。
答案 0 :(得分:3)
问题是您获得了LayoutInflater
getSystemService()
。如果您希望LayoutInflater
使用特定主题,则必须使用该主题的Context
创建主题。通常是来自Context
或来自Activity
的{{1}}。试试这个:
Application