我正在构建一个库项目,它根据用户请求返回Views
。但是,我在库项目中创建的 View
不使用我在应用程序中使用的主题。
例如,如果库项目返回一个其中包含 EditText
的 Fragment
,那么 EditText
甚至不会使用 AppCompat 主题尽管应用程序正在使用它。
这是我用来在库项目中膨胀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()
在几个子类中实现,它使用 getInflater()
中的 LayoutInflater
来膨胀 View布局 xml 中的
实例。
最佳答案
问题是您得到 LayoutInflater
与 getSystemService()
。如果您想要LayoutInflater
要使用特定主题,您必须从 Context
创建它正在使用该主题。通常是 Context
来自Activity
或来自您的Application
。试试这个:
LayoutInflater inflater = LayoutInflater.from(context);
关于java - 图书馆项目中未使用 Android 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022991/