Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamically changing the linearlayout width or height on Android

Tags:

android

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

My layout is:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/abc"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     > <TextView        android:layout_width="fill_parent"      android:layout_height="wrap_content"      android:text="ghghjkgj ghjg hjgj ghj g hjgjgh jhg "     /> </LinearLayout> 

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?

like image 361
Pratique Avatar asked Sep 29 '10 12:09

Pratique


People also ask

How do I find the height and width of RelativeLayout in android programmatically?

private int width, height; RelativeLayout rlParent = (RelativeLayout) findViewById(R. id. rlParent); w = rlParent. getWidth(); h = rlParent.

What is the difference between LinearLayout and RelativeLayout in Android?

Android Layout TypesLinearLayout : is a ViewGroup that aligns all children in a single direction, vertically or horizontally. RelativeLayout : is a ViewGroup that displays child views in relative positions. AbsoluteLayout : allows us to specify the exact location of the child views and widgets.


1 Answers

Check this - http://smartandroidians.blogspot.com/2010/04/changing-layout-height-dynamically.html

ll.getLayoutParams().height = 300; ll.getLayoutParams().width = 200; ll.requestLayout(); 

This works also on event handler.

like image 64
Tom Avatar answered Sep 28 '22 04:09

Tom