我正在尝试测试自定义布局,该布局从设计库扩展TextInputLayout
。当我运行测试时,我收到错误
java.lang.IllegalArgumentException:您需要将Theme.AppCompat主题(或后代)与设计库一起使用。 在android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:33) 在android.support.design.widget.TextInputLayout。(TextInputLayout.java:192) 在android.support.design.widget.TextInputLayout。(TextInputLayout.java:185) 在android.support.design.widget.TextInputLayout。(TextInputLayout.java:181)
我正在使用InstrumentationRegistry.getTargetContext()
提供的上下文来实例化自定义布局。我该如何解决这个问题?
答案 0 :(得分:0)
在使用它来实例化自定义布局之前,在为其提供AppCompat主题的上下文对象上调用setTheme()
,如下面的示例测试方法所示。
@Test
public void testCustomLayout() {
Context context = InstrumentationRegistry.getContext();
context.setTheme(R.style.Theme_AppCompat);
CustomLayout textInputEditText = new CustomLayout(context);
assertNotNull(textInputEditText);
}