简体   繁体   中英

how to increase layout(linear/relative) layout height dynamically in android?

I have a requirement in my app such that I should increment my linear layout height dynamically as I am adding views to it. I tried set layout height wrap_content but it is not working properly.

The code snippet looks like as below:

<?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>

Here dynamically generated views are added to two

Thanks in advance!!

  • Try linearLayout.invalidate() and check if it updates its height according to the content
  • If you actually want to change the height manually, use layout.getLayoutParams().height = 150 or whatever new height you want

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM