tags:

views:

51

answers:

1

Hi,

I am trying to change linear layout or any other widget width or height dynamically but throwing exception.

My layout is =>>>>>>>

android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ghghjkgj ghjg hjgj ghj g hjgjgh jhg " />

and My activity is =>>>>>>>>>>

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LinearLayout ll = (LinearLayout)findViewById(R.id.abc); ll.setLayoutParams(new LinearLayout.LayoutParams(30,60)); }

Throwing following exception...

E/AndroidRuntime(16052): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams E/AndroidRuntime(16052): at android.widget.FrameLayout.onLayout(FrameLayout.java:288) E/AndroidRuntime(16052): at android.view.View.layout(View.java:7035) E/AndroidRuntime(16052): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) E/AndroidRuntime(16052): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) E/AndroidRuntime(16052): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042) E/AndroidRuntime(16052): at android.view.View.layout(View.java:7035) E/AndroidRuntime(16052): at android.widget.FrameLayout.onLayout(FrameLayout.java:333) E/AndroidRuntime(16052): at android.view.View.layout(View.java:7035) E/AndroidRuntime(16052): at android.view.ViewRoot.performTraversals(ViewRoot.java:1045) E/AndroidRuntime(16052): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) E/AndroidRuntime(16052): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(16052): at android.os.Looper.loop(Looper.java:123) E/AndroidRuntime(16052): at android.app.ActivityThread.main(ActivityThread.java:4627) E/AndroidRuntime(16052): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(16052): at java.lang.reflect.Method.invoke(Method.java:521) E/AndroidRuntime(16052): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) E/AndroidRuntime(16052): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) E/AndroidRuntime(16052): at dalvik.system.NativeStart.main(Native Method)

so how can I change the dimensions dynamically.....

A: 

The problem here is that when you set the layout params the type needs to be that of the parent, in this case that is a FrameLayout. You need to do this:

ll.setLayoutParams(new FrameLayout.LayoutParams(30,60));
skorulis
thanks a lot.......its very helpful to me but how can I identify the parent of linearlayout.