我有一份清单。 当您单击元素时,它将被选中,并应垂直扩展以替换更多数据。
我试图通过添加到每个元素的布局“详细信息”视图来完成此操作,该视图由dafault隐藏并设置为VISIBLE onClick。
元素高度不变的唯一问题。 如果我尝试这样:
holder.line_view
.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, dip(
convertView.getContext(), 30)));
然后我得到了未知的异常。 只是
holder.details_pane.setVisibility(View.VISIBLE);
不起作用,尺寸不会改变。
请告知。
布局:
<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" />
在适配器中我尝试:
@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);
}
答案 0 :(得分:1)
如果您允许旋转视图,请尝试尝试:让您的视图自行重绘并查看行是否更大。“不起作用,尺寸不变”
可能您只需要使列表视图无效以便重绘。可能使该行无效。
也许它就像调用notifyDataSetChanged()一样简单;在自定义列表视图适配器上
答案 1 :(得分:0)
我不知道您的代码问题。但你应该试试这个
com.android.widget.ExpandableListView
com.android.widget.ExpandableListAdapter
这是根据您的要求设计的,并附带操作系统