Android java.lang.ClassCastException

时间:2012-09-21 15:27:16

标签: android android-layout

我正在使用关闭按钮和幻灯片按钮加载webview。当我clic

main.xml中

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FFFFFF" 
    android:layout_marginRight="25dip"
    android:layout_marginTop="25dip"
    android:layout_marginLeft="25dip"
    android:layout_marginBottom="25dip" >
<WebView
    android:id="@+id/webac_larger"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
</WebView>

<ImageView android:id="@+id/close_btn"         
    android:layout_alignParentTop="true"         
    android:layout_alignParentRight="true"         
    android:layout_width="wrap_content"         
    android:layout_height="wrap_content"
    android:src="@drawable/close_button"
    android:layout_marginTop="-3dip"
    android:layout_marginRight="0dip"
    />  

<ImageButton 
    android:id="@+id/slidebutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_toLeftOf="@+id/close_btn"
    android:src="@drawable/arrowleft" />     

我想点击按钮调整webview的大小。

final ImageButton button1 = (ImageButton) findViewById(R.id.slidebutton);
        button1.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
            Log.d("MultiWeb", "I have clicked the button");
            RelativeLayout params = ((RelativeLayout )button1.getParent());
             params.setLayoutParams(new RelativeLayout.LayoutParams(100, 100));
          }
        });

我收到此错误。我正在使用relatice布局,为什么错误说框架布局?

java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams

1 个答案:

答案 0 :(得分:1)

正如Android Layouts API Guide中所述,每种类型的ViewGroup都有自己的LayoutParams类,用于定义子View的大小和位置。

您可以在视图上调用LayoutParams来获取当前参数对象,而不是创建其中一个ClassCastException类的全新实例并冒险getLayoutParams()。您希望,并致电setLayoutParams()以应用更新的参数。