2015-05-04 35 views
2

我正在构建一个基于用户请求返回Views的图书馆项目。但是我在库项目中创建的Views不使用我在应用程序中使用的主题。Android主题未在图书馆项目中使用

例如,如果库项目返回Fragment它有它的EditText,则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()在几个子类来实现,它使用的LayoutInflatergetInflater()可以填充View来自布局xml的实例。

回答

3

问题是你得到的LayoutInflatergetSystemService()。如果您希望LayoutInflater使用特定的主题,则必须从使用该主题的Context创建该主题。通常这将是从Activity或从ApplicationContext。试试这个:

LayoutInflater inflater = LayoutInflater.from(context);