2012-09-23 21 views
3

我得到的例外,同時設置scroolview programmatically.I的的LayoutParams嘗試,但得到的異常而做that.This是代碼:獲取例外,同時設置滾動型的LayoutParams編程

sv = (ScrollView)findViewById(R.id.scrollView); 
     sv.setBackgroundColor(Color.TRANSPARENT); 

      ScrollView.LayoutParams layoutParams = new ScrollView.LayoutParams(
        ScrollView.LayoutParams.MATCH_PARENT, 
        ScrollView.LayoutParams.MATCH_PARENT); 
      layoutParams.bottomMargin = 100; 
      layoutParams.setMargins(0, 0, 0, 100); 
      sv.setLayoutParams(layoutParams); 

這是錯誤日誌:

09-23 12:13:20.666: E/AndroidRuntime(3284): Uncaught handler: thread main exiting due to uncaught exception 
09-23 12:13:20.696: E/AndroidRuntime(3284): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1291) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1238) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:279) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:299) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.View.measure(View.java:7964) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:569) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:361) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.View.measure(View.java:7964) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.View.measure(View.java:7964) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:464) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:278) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.View.measure(View.java:7964) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.View.measure(View.java:7964) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.View.measure(View.java:7964) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.ViewRoot.performTraversals(ViewRoot.java:763) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1633) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.os.Handler.dispatchMessage(Handler.java:99) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.os.Looper.loop(Looper.java:123) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at java.lang.reflect.Method.invoke(Method.java:521) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
09-23 12:13:20.696: E/AndroidRuntime(3284):  at dalvik.system.NativeStart.main(Native Method) 

這是XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_centerHorizontal="true" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:id="@+id/frameLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <ScrollView 
      android:id="@+id/scrollView" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="90.0dip" 
      android:layout_marginLeft="1.0dip" 
      android:layout_marginRight="1.0dip" 
      android:layout_marginTop="-2.0dip" 
      android:animateLayoutChanges="true" 
      android:fadeScrollbars="true" 
      android:fadingEdge="none" > 

      <!-- android:layout_marginBottom="60.0dip" --> 
      <!-- android:fillViewport="true" --> 

      <RelativeLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:visibility="visible" > 

       <ImageView 
        android:id="@+id/QuestionImageView" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:visibility="visible" /> 

       <TextView 
        android:id="@+id/tv" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/QuestionImageView" 
        android:fadingEdge="vertical" 
        android:scrollbars="vertical" /> 

       <TextView 
        android:id="@+id/questionnumber" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:fadingEdge="vertical" 
        android:scrollbars="vertical" /> 

       <TextView 
        android:id="@+id/question" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentRight="true" 
        android:layout_below="@id/tv" 
        android:fadingEdge="vertical" 
        android:padding="10dp" 
        android:scrollbars="vertical" 
        android:text="" 
        android:textColor="@color/dark_green" /> 

       <RadioGroup 
        android:id="@+id/radioGroup1" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/question" 
        android:orientation="vertical" > 

        <RadioButton 
         android:id="@+id/option1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="" /> 

        <ImageView 
         android:layout_width="fill_parent" 
         android:layout_height="1.0dp" 
         android:background="@drawable/thinnest_blue_gradient" /> 

        <RadioButton 
         android:id="@+id/option2" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="" /> 

        <ImageView 
         android:layout_width="fill_parent" 
         android:layout_height="1.0dp" 
         android:background="@drawable/thinnest_blue_gradient" /> 

        <RadioButton 
         android:id="@+id/option3" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="" /> 

        <ImageView 
         android:layout_width="fill_parent" 
         android:layout_height="1.0dp" 
         android:background="@drawable/thinnest_blue_gradient" /> 

        <RadioButton 
         android:id="@+id/option4" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="" /> 
       </RadioGroup> 
      </RelativeLayout> 
     </ScrollView> 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/relativequestion" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" > 

     <com.google.ads.AdView 
      android:id="@+id/ad" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      ads:adSize="SMART_BANNER" 
      ads:adUnitId="a1501e5633125fb" 
      ads:loadAdOnCreate="true" 
      ads:testDevices="TEST_EMULATOR, 123456789ABCDEF" /> 

     <LinearLayout 
      android:id="@+id/newquestion" 
      android:layout_width="fill_parent" 
      android:layout_height="40.0dip" 
      android:layout_above="@id/ad" 
      android:background="#ff777777" 
      android:orientation="horizontal" > 

      <Button 
       android:id="@+id/PrevButton" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_centerInParent="true" 
       android:layout_marginLeft="5.0dip" 
       android:layout_weight="1.0" 
       android:background="@drawable/ibtn" 
       android:onClick="onPrevButtonClick" 
       android:text="Prev" /> 

      <Button 
       android:id="@+id/NextButton" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_centerInParent="true" 
       android:layout_marginLeft="5.0dip" 
       android:layout_weight="1.0" 
       android:background="@drawable/ibtn" 
       android:onClick="onNextButtonClick" 
       android:text="Next" /> 

      <Button 
       android:id="@+id/SkipButton" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_centerInParent="true" 
       android:layout_marginLeft="5.0dip" 
       android:layout_weight="1.0" 
       android:background="@drawable/ibtn" 
       android:onClick="onSkipButtonClick" 
       android:text="Skip" > 
      </Button> 

      <Button 
       android:id="@+id/SubmitButton" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_centerInParent="true" 
       android:layout_marginLeft="5.0dip" 
       android:layout_marginRight="5.0dp" 
       android:layout_weight="1.0" 
       android:background="@drawable/ibtn" 
       android:onClick="onSubmitButtonClick" 
       android:text="Submit" /> 
     </LinearLayout> 
    </RelativeLayout> 

</RelativeLayout> 

請幫助我。提前感謝。

+0

請幫助我。 – user1662334

回答

13

ScrollView的父母是RelativeLayout,爲此你應該使用RelativeLayout.LayoutParams

RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) sv 
      .getLayoutParams(); 
    lp.setMargins(0, 0, 0, 100); 
+0

非常感謝,先生。 – user1662334

相關問題