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) 

모든 아이디어에 문제를 해결하십시오. 고축

+0

전체 코드를 게시 할 수 있습니까? –

+1

필자는 필자의 XML 파일 (위)에서 높이와 너비를 내 선택에 따라 설명하고자합니다.이 정보가 필요하다고 생각하지는 않습니다. – Custadian

답변

3

문제가 해결되었습니다. 상대 레이아웃 대신 ScrollView를 배치해야합니다.

설정하려는 상대 레이아웃이 내 XML에서 스크롤보기의 하위 항목이므로

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

XML 파일을 어떻게 팽창 시키나요?

왜 XML에서 레이아웃을 설정하는 것이 당신이 찾고있는 것과 일치하지 않습니까?

+0

자바 파일에서 레이아웃 매개 변수를 설정하려고합니다. 그래서 화면 너비를 사용할 수 있습니다. – Custadian

+0

확인. 그리고 어떻게 코드에서 XML을 부 풀릴 수 있습니까? – guikk

+0

나는이 XML을 팽창시키고 있지 않다. – Custadian

0

"LayoutParameters"를 잘못 가져 왔을 가능성이 있습니까? "LayoutParameters"에 사용할 수있는 다양한 수입이 있다고 생각합니다. 하지만 확실하지 않습니다. D. 그것은 약간의 시간 전에 비슷한 상황이 있었기 때문입니다.

관련 문제