设置linearlayout高度不起作用

时间:2013-12-02 12:06:08

标签: android xml

我在线性布局中有一个listview,其高度设置为“WRAP_CONTENT”,因此列表出现在线性布局中,当我填充列表时,我在每个列表行中附加一些隐藏的列表项,我想在listitemClick listner上显示这些项目,

一切正常,但如果我只有一个列表子,那么我必须滚动视图才能看到现在可见的布局,
我的问题是:
我想在单击列表项并且视图可见时增加该线性布局的高度。

这里是xml ..

<LinearLayout
android:id="@+id/listContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
    //used this relative layout to set different backgroung for each time..     


<RelativeLayout
    android:id="@+id/listHeader"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/categoryTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:textColor="#FFFFFF"
        android:textSize="15sp" />
</RelativeLayout>

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

当隐藏项目可见时,我使用此代码来增加高度,

LayoutParams paramsLinearLayout;
    LinearLayout layoutContainer;
layoutContainer = (LinearLayout) findViewById(R.id.listContainer);
    paramsLinearLayout =  layoutContainer.getLayoutParams();
    layoutContainer.setMinimumHeight(paramsLinearLayout.WRAP_CONTENT);

2 个答案:

答案 0 :(得分:0)

使用这段代码:

LinearLayout linear = new LinearLayout(getContext());
LayoutParams linearParams=new LayoutParams(LayoutParams.MATCH_PARENT,Height what you want);

而不是:

LayoutParams paramsLinearLayout;
    LinearLayout layoutContainer;
layoutContainer = (LinearLayout) findViewById(R.id.listContainer);
    paramsLinearLayout =  layoutContainer.getLayoutParams();
    layoutContainer.setMinimumHeight(paramsLinearLayout.WRAP_CONTENT);

答案 1 :(得分:0)

我认为你不应该在高度为wrap_content的布局中使用高度match_parent视图,如你所示:

<LinearLayout
android:id="@+id/listContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
    //used this relative layout to set different backgroung for each time..     

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

你也不能将linearlayout的高度设置为match_parent吗?