我的ScrollView
内有RelativeLayout
。
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<RelativeLayout
android:id="@+id/toWrap"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background_color">
我想让这个RelativeLayout 不填充其父级,但填写显示。
我想要这样,因为当我打开键盘时,布局变得很难看。
我尝试用onDraw创建一个ExpandableRelativeLayout
子类,如下所示:
@Override
protected void onDraw(Canvas canvas)
{
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, (int)(metrics.heightPixels * metrics.density)));
super.onDraw(canvas);
}
但我经常收到这个错误:
E/AndroidRuntime(15331): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams`
我该怎么做?
感谢。
答案 0 :(得分:0)
我认为您应该使用 RelativeLayout.LayoutParams 而不是layoutparams。这就是我经常做的事情并没有任何错误。此外,如果您使用ecllipse并且您更改了xml并且此后发生此错误,那么您应该关闭ecllipse并重新开始。这是ecllipse中的一个错误,在某些时候你的R.java停止生成并且发生classcastexception。