Wou*_*tte 7 android android-studio
我有一个自定义视图,我们称之为CustomView
。在初始化中,我调用了以下方法
textPaint.setTypeface(ResourcesCompat.getFont(getContext(),R.font.pretty_font));
Run Code Online (Sandbox Code Playgroud)
在应用程序中,此视图完美运行,字体显示为它应有的样子,但问题是该视图的预览无法在编辑器中加载,其中包含以下详细信息:
android.content.res.Resources$NotFoundException:字体资源 ID
0x7f090000 无法检索。
在 androidx.core.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:365) 在 androidx.core.content.res.ResourcesCompat.getFont(ResourcesCompat.java:230) 在 com.mycompany.myapp.view.views.CustomView .init(CustomView.java:490) 在 com.mycompany.myapp.view.views.CustomView.initAttrs(CustomView.java:484) 在 com.mycompany.myapp.view.views.CustomView.(CustomView.java:116)在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.reflect. .newInstance(Constructor.java:423) 在 org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:403) 在 org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:186) 在 org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:144) 在 com.android.tools.idea.rendering .LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:309) 在 android.view.BridgeInflater.loadCustomView(BridgeInflater.java:418) 在 android.view.BridgeInflater.loadCustomView(BridgeInflater.java:429) 在 android.view.BridgeInflater.createViewFromTag BridgeInflater.java:333) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate(LayoutInflater_Delegate) ) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:837) 在 android.view。LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) 在 android.view.LayoutInflaterLayoutInflater(LayoutInflater) .java:837) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:394)在 com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:323) 在 com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:394) 在 com.android.tools.idea.layoutlib .LayoutLibrary.createSession(LayoutLibrary.java:200) 在 com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:572) 在 com.android.tools.idea.rendering.RenderTask.lambda$inflate$5(RenderTask.java:698) 在 java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) 在 java。 util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748)
为什么这个资源不会在编辑器中加载,但在应用程序中运行却没有问题?仅供参考,MinSdk = 21 和 TargetSdk = 28
不要setTypeface
在设计模式下调用。用:
if (!isInEditMode()) {
textPaint.setTypeface(ResourcesCompat.getFont(getContext(),R.font.pretty_font))
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
609 次 |
最近记录: |