android - Android Studio:无法在 GridLayout 上添加视图。android/view/View$OnUnhandledKeyEventListener
问题描述
我已经为此苦苦挣扎了好几个小时。为什么会这样?我正在学习网站上的课程(不确定我是否可以提及),一切都应该完美无缺,但它不适合我。本质上,我想做的是做一个“连接四个”游戏,我想使用 GridLayout 并在其中添加 ImageViews。当我尝试将 ImageViews 添加到 gridLayout 时,它们没有显示。它们“存在”,但并没有真正表现出来。到目前为止我尝试了什么:
- 改变布局的高度和宽度
- 玩弄背景,能见度
- 谷歌搜索这个问题。
- 向网格布局添加垂直方向
- 再次从头开始创造一切
“使缓存无效/重新启动...”
Stack Trace java.lang.ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener at org.jetbrains.android.uipreview.ModuleClassLoader.load(ModuleClassLoader.java:180) at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:61) at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:118) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:213) at android.support.v7.widget.GridLayout.isLayoutRtlCompat(GridLayout.java:679) at android.support.v7.widget.GridLayout.onLayout_Original(GridLayout.java:1082) at android.support.v7.widget.GridLayout.onLayout(GridLayout.java) at android.view.View.layout_Original(View.java:19659) at android.view.View_Delegate.layout(View_Delegate.java:91) at android.view.View.layout(View.java:19645) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.support.constraint.ConstraintLayout.onLayout_Original(ConstraintLayout.java:1858) at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java) at android.view.View.layout_Original(View.java:19659) at android.view.View_Delegate.layout(View_Delegate.java:91) at android.view.View.layout(View.java:19645) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout_Original(View.java:19659) at android.view.View_Delegate.layout(View_Delegate.java:91) at android.view.View.layout(View.java:19645) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1083) at android.view.View.layout_Original(View.java:19659) at android.view.View_Delegate.layout(View_Delegate.java:91) at android.view.View.layout(View.java:19645) at android.view.ViewGroup.layout(ViewGroup.java:6075) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:346) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384) at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:544) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:678) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout android:layout_width="368dp" android:layout_height="359dp" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:background="@drawable/board2" android:visibility="visible" app:columnCount="3" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.6" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="1.0" app:rowCount="3"> <ImageView android:id="@+id/imageView" android:layout_width="50dp" android:layout_height="50dp" android:background="@drawable/red" android:visibility="visible" app:srcCompat="@drawable/red" /> </android.support.v7.widget.GridLayout>
解决方案
我是Android新手,我也遇到同样的错误,但我发现网格布局的一个简单方法是尝试使用基本<GridLayout>
标签而不是<android.support.v7.widget.GridLayout>
廉价方式......
推荐阅读
- regex - 正则表达式:为什么这不能捕获多个双字母出现?
- batch-file - 批处理脚本 - 将在一个目录中找到的所有文件写入一个命令行?
- javascript - Javascript 重定向在 Flask 中不起作用
- r - 从 R 中的数据框中显示均匀分布的行样本
- architecture - 什么是 MemCache,它在内部是如何工作的?
- angular - 使用 Cypress 测试 OAuth 2.0 受保护的 Angular 应用程序
- javascript - 如何将对象数组转换为指定的对象格式?
- python - 排列函数问题
- swift - 在使用 PNG 纹理图集时获得最佳 GPU 性能的提示?
- python - 您如何让 pexpect 在 linux 命令行提示符的 process.expect("$") 上触发?