【问题标题】:How to set ListView Height dynamically onClick inside a custom adapter?如何在自定义适配器内动态设置 ListView 高度 onClick?
【发布时间】:2012-07-27 06:45:56
【问题描述】:

情况就是这样; 我有一个带有自定义适配器的 ListView。每个列表项包括一个按钮和一个隐藏的 TextView(Visibility=GONE)。当我们单击按钮时,它会显示隐藏的文本视图。 到目前为止,它工作得很好。

问题是,当显示 TextView 时,ListView 的高度应该相应增加。 我试着调整高度,比如..

list=(ListView)activity.findViewById(R.id.listView);
ViewGroup.LayoutParams l= lst.getLayoutParams();
l.height=l.height+150; //assuming the height of the TextView is 150
list.setLayoutParams(l);

但它并不完美。我的意思是,高度增加了,但它与前一部分混淆了。 IE;现在,当我单击按钮时,它不会显示相应的 TextView。它在其他一些 ListItem 中显示 TextView。

请帮我找到解决方案; 谢谢。

【问题讨论】:

  • 问得好,能发截图就更好了

标签: android listview height


【解决方案1】:

与使用 View.Gone 不同,将可见性设置为 View.INVISIBLE。点击后,textview 应该设置为 View.VISIBLE。 Gone 意味着 TextView 不应该保持布局。 来看看View definations

你能发送listview,xml文件吗?

【讨论】:

  • 感谢您的回复,我认为将可见性设置为 View.INVISIBLE 会导致视图保留一些空间。这可能会导致在列表中创建一些不需要的空白。我想在用户展开列表时创建一些空间。
  • 在列表视图的适配器布局中,您可以使用相对布局并给出绝对高度值而不是使用 wrap_content 来解决问题。然后你可以使用 View.Gone。
猜你喜欢
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多