title: FrameLayout to RelativeLayout ClassCastException even if there is no FrameLayout used
body: <p>In my application, I have a layout which has a <code>RelativeLayout</code> to which I want to set margins at runtime programmatically. But when I do that, it gives me <code>ClassCastException</code> saying <code>FrameLayout</code> can not cast to <code>RelativeLayout</code>. I don't have any FrameLayout used, also there are no imports for <code>FrameLayout</code>. Still the problem persists. The xml I am using is:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/rl_root"
  android:background="@color/menu_bg"
  android:layout_width="wrap_content"
  android:layout_height="fill_parent" &gt;
  
  &lt;RelativeLayout
      android:id="@+id/ll_lhs_menu"
      android:layout_width="300dip"
      android:layout_height="fill_parent"
      android:background="@color/menu_bg"
      android:orientation="vertical"&gt;
  
      .....
  
  &lt;/RelativeLayout&gt;
  
  &lt;RelativeLayout
      android:id="@+id/rl_right"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_alignParentRight="true"
      android:background="@drawable/capture_port"
      android:scrollbars="none" &gt;
  
      ....
  
  &lt;/RelativeLayout&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>And this is my onCreate where I set the margins to the parent layout:</p>
  
  <pre><code>/** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.menu);
  
   _rootLayout = (RelativeLayout) findViewById(R.id.rl_root);
  RelativeLayout.LayoutParams _rootLayoutParams = new RelativeLayout.LayoutParams(_rootLayout.getWidth(), _rootLayout.getHeight());
  _rootLayoutParams.setMargins(300, 0, 300, 0);
  _rootLayout.setLayoutParams(_rootLayoutParams);
  }
  </code></pre>
  
  <p>And here is the LogCat:</p>
  
  <pre><code>    07-18 21:12:39.410: E/AndroidRuntime(7663): FATAL EXCEPTION: main
      07-18 21:12:39.410: E/AndroidRuntime(7663): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:268)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.view.View.measure(View.java:10828)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:764)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:519)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.view.View.measure(View.java:10828)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4355)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:267)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:1912)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.view.View.measure(View.java:10828)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.view.ViewRoot.performTraversals(ViewRoot.java:960)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.view.ViewRoot.handleMessage(ViewRoot.java:2062)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.os.Handler.dispatchMessage(Handler.java:99)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.os.Looper.loop(Looper.java:132)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at android.app.ActivityThread.main(ActivityThread.java:4128)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at java.lang.reflect.Method.invokeNative(Native Method)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at java.lang.reflect.Method.invoke(Method.java:491)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
      07-18 21:12:39.410: E/AndroidRuntime(7663):     at dalvik.system.NativeStart.main(Native Method)
  </code></pre>
  
  <p>Where am I going wrong?</p>