Skip to content
This repository has been archived by the owner on Oct 28, 2023. It is now read-only.

java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams #26

Open
felipecaldas opened this issue Mar 7, 2017 · 0 comments

Comments

@felipecaldas
Copy link

felipecaldas commented Mar 7, 2017

Hi there,

While testing the SmartAdapter on API 19, I am getting the error mentioned in the subject right after initialising the Adapter:

SmartAdapter.items(waitingList)
.map(Challenge.class, RunningMultiplayerGamesView.class)
.into(this.listWaitingForPlayer);

The exact stacktrace is:

Process: , PID: 29598
                                                                        java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
                                                                            at android.widget.ListView.measureScrapChild(ListView.java:1183)
                                                                            at android.widget.ListView.onMeasure(ListView.java:1149)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
                                                                            at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1226)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                            at android.widget.ScrollView.onMeasure(ScrollView.java:326)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                            at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
                                                                            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
                                                                            at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
                                                                            at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
                                                                            at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
                                                                            at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
                                                                            at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
                                                                            at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
                                                                            at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
                                                                            at android.view.View.measure(View.java:16497)
                                                                            at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)
                                                                            at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)
                                                                            at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295)
                                                                            at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
                                                                            at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
                                                                            at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
                                                                            at android.view.Choreographer.doCallbacks(Choreographer.java:574)
                                                                            at android.view.Choreographer.doFrame(Choreographer.java:544)
                                                                            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
                                                                            at android.os.Handler.handleCallback(Handler.java:733)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                            at android.os.Looper.loop(Looper.java:136)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5017)
                                                                            at java.lang.reflect.Method.invokeNative(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:515)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                                                                            at dalvik.system.NativeStart.main(Native Method)

What I think is that for Api < 19 (not confirmed though, have only tested with API 22+ and it works) FrameLayout can't be cast correctly to AbsListView params. So my guess that somewhere in the AdapterCode we need to apply

setLayoutParams(new AbsListView.LayoutParams(100,100));

What do you think?
Thank you

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant