动态改变在Android上的LinearLayout宽度或高度 [英] Dynamically changing the linearlayout width or height on Android
本文介绍了动态改变在Android上的LinearLayout宽度或高度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图改变线性布局或任何其他部件的宽度或高度动态的,但抛出异常。
I am trying to change linear layout or any other widget width or height dynamically but throwing exception.
我的布局是:
<?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>
和我的活动是:
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?
推荐答案
检查这一点 - <一个href="http://smartandroidians.blogspot.com/2010/04/changing-layout-height-dynamically.html">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.
这篇关于动态改变在Android上的LinearLayout宽度或高度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文