0

我想以编程方式设置布局宽度,以下是我的XML布局文件。尝试以编程方式设置LayoutWidth

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/startTime_EndtimeLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 



    <TextView 
     android:id="@+id/HeadingTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:text="TextView" /> 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/HeadingTextView" 
     android:layout_above="@+id/dialogButtonOK" 
     android:scrollbars="vertical" > 

     <RelativeLayout 
      android:id="@+id/startTime_EndtimeLayoutWithScroll" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <TableLayout 
       android:id="@+id/startTime_EndtimeTableLayout" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" > 
      </TableLayout> 
     </RelativeLayout> 
    </ScrollView> 

    <Button 
     android:id="@+id/dialogButtonOK" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:text=" close " /> 

</RelativeLayout> 

我想设置相对布局宽度,滚动视图的子视图。 的方法我都试过了,

1.

RelativeLayout rl = (RelativeLayout)findViewById(R.id.startTime_EndtimeLayoutWithScroll); 
rl.setLayoutParams(new 

LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

2.

RelativeLayout rl = (RelativeLayout)scrollView.findViewById(R.id.startTime_EndtimeLayoutWithScroll); 
    rl.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

在这两种情况下,我得到这个错误,

10-11 17:36:31.526: E/dalvikvm(1555): [DVM] mmap return base = 4586a000 
10-11 17:36:32.824: E/dalvikvm(1555): [DVM] mmap return base = 459e1000 
10-11 17:36:32.966: E/AndroidRuntime(1555): FATAL EXCEPTION: main 
10-11 17:36:32.966: E/AndroidRuntime(1555): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.widget.FrameLayout.onLayout(FrameLayout.java:324) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.widget.ScrollView.onLayout(ScrollView.java:1331) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.view.View.layout(View.java:7225) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:943) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.view.View.layout(View.java:7225) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.widget.FrameLayout.onLayout(FrameLayout.java:369) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.view.View.layout(View.java:7225) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.widget.FrameLayout.onLayout(FrameLayout.java:369) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.view.View.layout(View.java:7225) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1181) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1913) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.os.Handler.dispatchMessage(Handler.java:130) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.os.Looper.loop(SourceFile:351) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at android.app.ActivityThread.main(ActivityThread.java:3820) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at java.lang.reflect.Method.invoke(Method.java:538) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727) 
10-11 17:36:32.966: E/AndroidRuntime(1555):  at dalvik.system.NativeStart.main(Native Method) 

任何想法解决问题。 Thanx

+0

你能发布完整的代码吗? –

+1

我已经提到,从我的XML文件(上面给出),我想根据我的选择给出高度和宽度。我不认为比这更多的任何信息是必要的。 – Custadian

回答

3

我解决了这个问题。我需要把ScrollView代替相对布局。

因为我想要设置的相对布局是我的XML中滚动视图的子项。

ScrollView.LayoutParams params = new ScrollView.LayoutParams(width,LayoutParams.WRAP_CONTENT); 
     rl.setLayoutParams(params); 
0

如何膨胀XML文件?

为什么从XML中设置布局不符合您的要求?

+0

我想从java文件中设置布局的参数。所以我可以使用屏幕宽度。 – Custadian

+0

好的。你如何在代码中夸大你的XML? – guikk

+0

我不是在膨胀这个XML。 – Custadian

0

是否有可能导致“LayoutParameters”导入错误? 我认为有很多不同的输入可以用于“LayoutParameters”。 但我不确定:D。 这只是因为我前一段时间有类似的情况。