【问题标题】:Android Studio: Can't add Views on GridLayout. android/view/View$OnUnhandledKeyEventListenerAndroid Studio:无法在 GridLayout 上添加视图。 android/view/View$OnUnhandledKeyEventListener
【发布时间】:2018-07-17 11:07:55
【问题描述】:

我已经为此苦苦挣扎了好几个小时。为什么会这样?我正在学习网站上的课程(不确定我是否可以提及),一切都应该完美无缺,但它不适合我。 本质上,我想做的是做一个“连接四个”游戏,我想使用 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 android-studio imageview grid-layout


【解决方案1】:

我是 Android 新手,我也遇到同样的错误, 但我发现网格布局的一种简单方法是尝试使用基本的&lt;GridLayout&gt; 标签而不是&lt;android.support.v7.widget.GridLayout&gt; 便宜的方式...

【讨论】:

    【解决方案2】:

    我设法通过进入文本视图并调整一些 xml 代码来解决这个问题。

        <GridLayout
        android:layout_width="match_parent"
        android:columnCount="3"
        android:rowCount="3"
        android:background="@drawable/board"
        android:layout_height="400dp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/gridLayout">
        
        </GridLayout>
    
        <ImageView
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:id="@+id/imageView"
        android:layout_alignBottom="@+id/gridLayout"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_margin="15dp"
        android:layout_marginTop="25dp"
        android:onClick="dropIn"
        android:tag="0"/>
    

    基本上我只是将 ImageView 代码移到了网格布局代码中,而不是在之后。希望这是有道理的!

        <GridLayout
        android:layout_width="match_parent"
        android:columnCount="3"
        android:rowCount="3"
        android:background="@drawable/board"
        android:layout_height="400dp"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/gridLayout">
    
        <ImageView
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:id="@+id/imageView"
        android:layout_alignBottom="@+id/gridLayout"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_margin="15dp"
        android:layout_marginTop="25dp"
        android:onClick="dropIn"
        android:tag="0"/>
    
        
        </GridLayout>
    
        
    

    【讨论】:

    • 嗨 Reece,欢迎来到 StackOverflow。请直接将代码添加到您的答案中,而不是发布它的图像。另外,您可以在这里查看guideline...
    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多