如何在android中动态增加布局(线性/相对)布局高度?

时间:2015-04-01 03:41:45

标签: android android-layout

我的应用程序中有一个要求,我应该动态增加线性布局高度,因为我要添加视图。我尝试设置布局高度wrap_content但它无法正常工作。

代码段如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:scrollbars="vertical">
<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <RelativeLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="149dp"
        android:scrollbars="horizontal" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="29dp"
            android:layout_marginTop="22dp"
            android:text="Symbol" />

        <AutoCompleteTextView
            android:id="@+id/autoCompleteTextView1"
            android:layout_width="140dp"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textView1"
            android:layout_alignBottom="@+id/textView1"
            android:textSize="15dp"
            android:layout_centerHorizontal="true" >
            <requestFocus />
        </AutoCompleteTextView>

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_alignLeft="@+id/autoCompleteTextView1"
            android:layout_centerVertical="true" 
            android:entries="@array/type_array"/>

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/spinner1"
            android:layout_alignBottom="@+id/spinner1"
            android:layout_alignLeft="@+id/textView1"
            android:text="Type" />

        <Spinner
            android:id="@+id/Spinner01"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_alignLeft="@+id/spinner1"
            android:layout_below="@+id/spinner1" 
            android:entries="@array/expdate_array"/>

        <TextView
            android:id="@+id/TextView02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/Spinner01"
            android:layout_alignBottom="@+id/Spinner01"
            android:layout_alignLeft="@+id/TextView01"
            android:text="ExpDate" />

    </RelativeLayout>

        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <com.codegineer.datagridclasses.DataGrid
            android:id="@+id/datagrid"
            android:layout_width="fill_parent"
            android:layout_height="135dp"
            android:background="#ffffff"/>  

    <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >    

        <com.codegineer.datagridclasses.DataGrid
            android:id="@+id/datagrid1"
            android:layout_width="fill_parent"
            android:layout_height="200dp"
            android:background="#ffffff" />

    </LinearLayout> 
</LinearLayout>
</ScrollView>

这里动态生成的视图被添加到两个

提前致谢!!

1 个答案:

答案 0 :(得分:0)

  • 尝试linearLayout.invalidate()并检查是否根据内容更新其高度
  • 如果您确实想手动更改高度,请使用layout.getLayoutParams().height = 150或任何您想要的新高度