使scrollView中的内容与显示大小匹配

时间:2014-06-26 03:19:46

标签: android layout

我的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`

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为您应该使用 RelativeLayout.LayoutParams 而不是layoutparams。这就是我经常做的事情并没有任何错误。此外,如果您使用ecllipse并且您更改了xml并且此后发生此错误,那么您应该关闭ecllipse并重新开始。这是ecllipse中的一个错误,在某些时候你的R.java停止生成并且发生classcastexception。