如何动态调整android布局
我需要根据从配置文件加载的信息动态(以编程方式)调整我的应用程序的最顶层布局。如何动态调整android布局
眼下main.xml中我有
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background">
</LinearLayout>
所以我在寻找一种方式来改变的android:layout_width和layout_height编程。
任何帮助,将不胜感激
RM
编辑:
按照建议,我已经试过如下:
LinearLayout l2 = (LinearLayout)findViewById(R.id.LinearLayout07);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT,1);
l2.setLayoutParams(params);
但是运行的时候,给我下面的错误:
Thread [<3> main] (Suspended (exception ClassCastException))
FrameLayout.onLayout(boolean, int, int, int, int) line: 288
FrameLayout(View).layout(int, int, int, int) line: 6133
....
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT,1);
layout.setLayoutParams(params);
其中布局是您使用findViewById获取的LinearLayout。在我的示例中,宽度和高度的参数为fill_parent,权重为1.
除了fill_parent选项,您当然可以使用像素中的固定大小,或者如果不需要,可以省略重量。
多数民众赞成IV过试图做,但应用程序崩溃时,我添加此代码... 这是最后两行的堆栈: (暂停(异常ClassCastException))\t FrameLayout.onLayout(boolean,int,int,int,int)行:288 – 2010-09-01 17:11:10
也许重量是做一些奇怪的内部组件。你可以再试一次,但没有最后一个参数(最后没有1)。尝试添加像素大小而不是fill_parent。是否出现相同的错误? – Milan 2010-09-01 21:22:47
当您尝试获取您的LinearLayout
时,我发现了一处错误。你把它写为LinearLayout07
而不是LinearLayout01
。
检查了这一点 http://d.android.com/reference/android/widget/LinearLayout.LayoutParams.html – 2010-09-01 15:14:24
我试过,但我想我做的不对的财产以后..生病后更多的代码 – 2010-09-01 15:22:51