1

I've been struggling with this for a good couple of hours. Why does this happen? I'm following a course from a website(not sure if i can mention) and everything should work flawlessly, except it doesn't for me. Essentially, what I'm trying to do is do a "Connect Four" game, and I want to use a GridLayout and add ImageViews in it. When I try to add the ImageViews to the gridLayout, they're not showing. They "exist", but not really showing. What I tried so far:

  • changing layout's height and width
  • playing around with the background, visibility
  • googling the hell out of this problem.
  • add vertical orientation to the gridlayout
  • creating everything from scratch again
  • "Invalidate Caches/Restart..."

    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>
    

DayDreamer
  • 11
  • 5
  • Solved partially by doing this: https://stackoverflow.com/questions/51305964/android-view-viewonunhandledkeyeventlistener-onmeasure-error – DayDreamer Jul 17 '18 at 12:48

2 Answers2

1

I am new to Android I also suffering from same error, but i found a simple way for Grid Layout is try using basic <GridLayout> tag instead of <android.support.v7.widget.GridLayout> Cheap Way...

shiVam_Mak
  • 39
  • 1
  • 8
0

I managed to fix this issue by going into the text view and adjusting some of the xml code.

    <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"/>

Essentially I just moved the ImageView code inside of the grid layout code, rather than having it after. Hope this makes sense!

    <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>

    
  • Hi Reece, Welcome to StackOverflow. Please add codes directly into your answer instead of posting images of it. Also, you can check the [guideline](https://stackoverflow.com/help/how-to-ask) here... – Saman Salehi Apr 19 '20 at 13:35