title: Android RelativeLayout.LayoutParams can not cast to AbsListview.LayoutParams (Error below 4.4.4) Working fine on 5.0 & 6.0.1
body: <p>I have used a <code>ListView</code> and the parent in the <code>xml</code> is <code>RelativeLayout</code>.
  When I run the app on 4.4.4 it gives me <code>ClassCastException</code> but when I run it on 5.0.1 or 6.0.1 it runs without any error. Please have a look in the code snippet.</p>
  
  <p><strong>Error :</strong> </p>
  
  <pre><code>09-21 10:39:16.410 14394-14394/com.spicex E/UncaughtException: java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
                                                                     at android.widget.ListView.setupChild(ListView.java:1849)
                                                                     at android.widget.ListView.makeAndAddView(ListView.java:1816)
                                                                     at android.widget.ListView.fillDown(ListView.java:697)
                                                                     at android.widget.ListView.fillFromTop(ListView.java:763)
                                                                     at android.widget.ListView.layoutChildren(ListView.java:1641)
                                                                     at android.widget.AbsListView.onLayout(AbsListView.java:2603)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:598)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531)
                                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                     at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1666)
                                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1442)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1191)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531)
                                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531)
                                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                     at android.view.View.layout(View.java:15859)
                                                                     at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2376)
                                                                     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2089)
                                                                     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1264)
                                                                     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6632)
                                                                     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:813)
                                                                     at android.view.Choreographer.doCallbacks(Choreographer.java:613)
                                                                     at android.view.Choreographer.doFrame(Choreographer.java:583)
                                                                     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:799)
                                                                     at android.os.Handler.handleCallback(Handler.java:733)
                                                                     at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                     at android.os.Looper.loop(Looper.java:146)
                                                                  at android.app.ActivityThread.main(Activity
  09-21 10:39:16.640 14394-14394/com.spicex E/AndroidRuntime: FATAL EXCEPTION: main
                                                              Process: com.spicex, PID: 14394
                                                              java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
                                                                  at android.widget.ListView.setupChild(ListView.java:1849)
                                                                  at android.widget.ListView.makeAndAddView(ListView.java:1816)
                                                                  at android.widget.ListView.fillDown(ListView.java:697)
                                                                  at android.widget.ListView.fillFromTop(ListView.java:763)
                                                                  at android.widget.ListView.layoutChildren(ListView.java:1641)
                                                                  at android.widget.AbsListView.onLayout(AbsListView.java:2603)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:598)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531)
                                                                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                  at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1666)
                                                                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1442)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1191)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531)
                                                                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1677)
                                                                  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1531)
                                                                  at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
                                                                  at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
                                                                  at android.view.View.layout(View.java:15859)
                                                                  at android.view.ViewGroup.layout(ViewGroup.java:4902)
                                                                  at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2376)
                                                                  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2089)
                                                                  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1264)
                                                                  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6632)
                                                                  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:813)
                                                                  at android.view.Choreographer.doCallbacks(Choreographer.java:613)
                                                                  at android.view.Choreographer.doFrame(Choreographer.java:583)
                                                                  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:799)
                                                                  at android.os.Handler.handleCallback(Handler.java:733)
                                                                  at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                  at android.os.Looper.loop(Looper.java
  </code></pre>
  
  <p><strong>GetView Method:</strong></p>
  
  <pre><code>@Override
  public View getView(final int position, View convertView, ViewGroup parent) {
      SpiceXHolder holder = null;
      if (convertView == null) {
          holder = new SpiceXHolder();
          convertView = mInflator.inflate(R.layout.list_item_spicex_result_screen, parent, false);
          holder.profileImageIV = (RoundedImageView) convertView.findViewById(R.id.profileImageIV);
          /*holder.imagePagerVP.setPageTransformer(true, new ZoomOutPageTransformer());*/
          holder.userInfoLL = (LinearLayout) convertView.findViewById(R.id.userInfoLL);
          holder.usernameTV = (TextView) convertView.findViewById(R.id.usernameTV);
          holder.distanceTV = (TextView) convertView.findViewById(R.id.distanceTV);
          holder.availablityTV = (TextView) convertView.findViewById(R.id.availablityTV);
          convertView.setTag(holder);
  
      } else {
          holder = (SpiceXHolder) convertView.getTag();
      }
  
  
      prevPos = position;
      convertView.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              if (!mResultScreenData.get(position).getAdvert()) {
                  Fragment fragment = ((MainActivity) mContext).getSupportFragmentManager().findFragmentById(R.id.containerFL);
                  if (fragment instanceof SpicexResultListFragment) {
                      ((SpicexResultListFragment) fragment).getSpiceXDetails((String) getItem(position).getEmail(), position);
                  }
              }
          }
      });
  
      if (mResultScreenData.get(position).getAdvert()) {
          Logger.e(TAG, position + "");
          holder.userInfoLL.setVisibility(View.GONE);
  
          RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Utils.getInstance().dpToPx(mContext, 90));
          int margin = Utils.getInstance().dpToPx(mContext, 5);
          params.setMargins(margin, margin, margin, margin);
          holder.profileImageIV.setLayoutParams(params);
          convertView.setLayoutParams(params);
          holder.profileImageIV.setCornerRadius(0);
          setImageInView(position, holder, mResultScreenData.get(position).getMedia().get(0), false);
          Logger.e(TAG, mResultScreenData.get(position).getMedia().get(0));
      } else {
          Utils.getInstance().getTimeZone();
          holder.profileImageIV.setCornerRadius(20);
          holder.userInfoLL.setVisibility(View.VISIBLE);
          RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Utils.getInstance().dpToPx(mContext, 260));
          int margin = Utils.getInstance().dpToPx(mContext, 5);
          params.setMargins(margin, margin, margin, margin);
          holder.profileImageIV.setLayoutParams(params);
          convertView.setLayoutParams(params);
  
          holder.distanceTV.setText(mResultScreenData.get(position).getDistance());
          String availText = getAvailabilityText(mResultScreenData.get(position).getFree());
          if (availText.equals(mContext.getString(R.string.check_it_out))) {
              holder.availablityTV.setTextColor(ContextCompat.getColor(mContext,R.color.red));
          } else if (availText.equals(mContext.getString(R.string.free_today))) {
              holder.availablityTV.setTextColor(ContextCompat.getColor(mContext,R.color.green));
          } else if (availText.equals(mContext.getString(R.string.proposal_sent))) {
              holder.availablityTV.setTextColor(ContextCompat.getColor(mContext,R.color.blue));
          }
          holder.availablityTV.setText(availText);
          holder.usernameTV.setText(mResultScreenData.get(position).getUserName());
          if (mResultScreenData.get(position).getMedia().size() &gt; 0)
              setImageInView(position, holder, Constants.URL_IMAGE + mResultScreenData.get(position).getMedia().get(0), true);
      }
  
      return convertView;
  }
  </code></pre>
  
  <p><strong>List item XML Layout</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="260dp"
      android:background="@drawable/layer_list_how_it_works"
      android:padding="3dp"&gt;
  
      &lt;com.spicex.utility.RoundedImageView
          android:id="@+id/profileImageIV"
          android:layout_width="match_parent"
          android:layout_height="260dp"
          android:background="@drawable/layer_list_how_it_works"
          android:scaleType="centerCrop" /&gt;
  
      &lt;LinearLayout
          android:id="@+id/userInfoLL"
          android:layout_width="match_parent"
          android:layout_height="80dp"
          android:layout_alignParentBottom="true"
          android:layout_marginLeft="5dp"
          android:layout_marginRight="5dp"
          android:background="@drawable/layer_list_gradient_profile_corners"
          android:orientation="vertical"&gt;
  
          &lt;TextView
              android:id="@+id/usernameTV"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:paddingBottom="5dp"
              android:paddingLeft="10dp"
              android:paddingTop="5dp"
              android:text="@string/samantha_richards"
              android:textAppearance="@android:style/TextAppearance.Large"
              android:textColor="@color/white" /&gt;
  
          &lt;LinearLayout
  
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              android:weightSum="2"&gt;
  
              &lt;LinearLayout
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_marginLeft="10dp"
                  android:layout_weight="1"
                  android:orientation="horizontal"&gt;
  
                  &lt;ImageView
                      android:layout_width="20dp"
                      android:layout_height="20dp"
                      android:layout_gravity="center_vertical"
                      android:background="@drawable/ic_date_avail" /&gt;
  
                  &lt;TextView
                      android:id="@+id/availablityTV"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_gravity="center_vertical"
                      android:layout_marginLeft="10dp"
                      android:text="@string/free_now"
                      android:textAppearance="@android:style/TextAppearance.Medium"
                      android:textColor="@color/green" /&gt;
              &lt;/LinearLayout&gt;
  
              &lt;RelativeLayout
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_gravity="right"
                  android:layout_marginLeft="10dp"
                  android:layout_weight="1"
                  android:orientation="horizontal"&gt;
  
                  &lt;ImageView
                      android:id="@+id/distanceIV"
                      android:layout_width="20dp"
                      android:layout_height="20dp"
                      android:layout_gravity="center_vertical"
                      android:layout_marginTop="2dp"
                      android:layout_toLeftOf="@+id/distanceTV"
                      android:background="@drawable/ic_location" /&gt;
  
                  &lt;TextView
                      android:id="@+id/distanceTV"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      android:layout_alignParentRight="true"
                      android:layout_gravity="center_vertical"
                      android:layout_marginLeft="10dp"
                      android:layout_marginRight="10dp"
                      android:text="@string/fourkm"
                      android:textAppearance="@android:style/TextAppearance.Medium"
                      android:textColor="@color/white" /&gt;
              &lt;/RelativeLayout&gt;
  
  
          &lt;/LinearLayout&gt;
      &lt;/LinearLayout&gt;
  &lt;/RelativeLayout&gt;
  </code></pre>