简体   繁体   English

如何在android中动态增加layout(linear / relative)布局高度?

[英]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. 我尝试设置布局高度wrap_content,但无法正常工作。

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 尝试linearLayout.invalidate()并检查其是否根据内容更新高度
  • If you actually want to change the height manually, use layout.getLayoutParams().height = 150 or whatever new height you want 如果您实际上要手动更改高度,请使用layout.getLayoutParams().height = 150或您想要的任何新高度

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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