java - 图书馆项目中未使用 Android 主题

标签 java android android-theme

我正在构建一个库项目,它根据用户请求返回Views。但是,我在库项目中创建的 View 不使用我在应用程序中使用的主题。

例如,如果库项目返回一个其中包含 EditTextFragment,那么 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 中的 实例。

最佳答案

问题是您得到 LayoutInflatergetSystemService() 。如果您想要LayoutInflater要使用特定主题,您必须从 Context 创建它正在使用该主题。通常是 Context来自Activity或来自您的Application 。试试这个:

LayoutInflater inflater = LayoutInflater.from(context);

关于java - 图书馆项目中未使用 Android 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022991/

相关文章:

java - Spring Data,获取行ManyToOne/OneToMany关系?

java - 我的方法输出错误 : java. util.InputMismatchException

android - 如何为 Android Holo Theme 样式的对话框按钮

android - 如何设计 Android Switch?

android - appcompat v22.1 小部件着色不显示 5.0 之前的版本

java - BufferedImage.getData().getPixels() 中的异常

java - 将 Java 公历转换为字符串

java - 使用接口(interface)列表读取并保存对象列表

android - 基线对齐的 TextInputLayout 和 Spinner

安卓事物 : 5. 1