Android 在ListView中动态更新列表元素高度

Android 在ListView中动态更新列表元素高度,android,listview,android-layout,Android,Listview,Android Layout,我有一张单子。 当您单击元素时,它将被选中,并应垂直展开以显示更多数据 我试图通过在每个元素的布局中添加“细节”视图来实现这一点,该视图由dafault隐藏,并设置为VISIBLE onClick 唯一的问题是元素的高度没有改变。 如果我试着这样做: holder.line_view .setLayoutParams(new LinearLayout.LayoutParams(

我有一张单子。 当您单击元素时,它将被选中,并应垂直展开以显示更多数据

我试图通过在每个元素的布局中添加“细节”视图来实现这一点,该视图由dafault隐藏,并设置为VISIBLE onClick

唯一的问题是元素的高度没有改变。 如果我试着这样做:

                    holder.line_view
                        .setLayoutParams(new LinearLayout.LayoutParams(
                                LayoutParams.FILL_PARENT, dip(
                                        convertView.getContext(), 30)));
然后我得到一个未知的异常。 只是

不起作用,大小没有改变

请告知。


布局:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/line_view">
<TextView
    android:id="@+id/desc"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="Description" />
<TextView
    android:text="LALALA"
    android:id="@+id/detailed_desc"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

我不知道你的代码问题。但是你应该试试这个

com.android.widget.ExpandableListView
com.android.widget.ExpandableListAdapter
这是为您的需求而设计的,并随操作系统一起提供

“不起作用,大小不变”

如果您允许视图旋转,可以尝试一些方法:使视图自身重新绘制,并查看行是否更大

可能您只需要使listview无效,以便它重新绘制。可能使该行无效


也许它甚至和调用notifyDataSetChanged()一样简单;在您的自定义listview适配器上

谢谢,但我需要具有任意深度的层次结构-ExpandableView只有两个级别。好的,所有这些都需要完成-正在调用notifyDataSetChanged();
 @Override
            public View getView(int position, View convertView, ViewGroup parent) {
...
switch (getItemViewType(position)) {
case TYPE_ITEM_EXPANDED:
                    holder.details_pane.setVisibility(View.VISIBLE);
...
case TYPE_ITEM_NORMAL:
                    holder.details_pane.setVisibility(View.GONE);
                }
com.android.widget.ExpandableListView
com.android.widget.ExpandableListAdapter