当前位置: 首页 > 知识库问答 >
问题:

使ListView项具有可变高度(wrap_content)

施令秋
2023-03-14

我知道很多文章描述了如何使listView项的展开/折叠动画化,但我就是无法使其工作:-(

我有一个listView,其中每个项目都包含一个隐藏的LinearLayout元素ll(view.gone),我希望使用动画展开/折叠ll。我的问题是--显然--LL的高度可变。ll的高度设置为wrap_content,因为它包含一个描述和一些图像。

我所看到的挑战是,我一开始就把LL的生存能力设定为.消失了。如果我在开始动画之前将其更改为view.visible,那么该区域会立即扩展,文本也会向下动画。如果我改变可视性后,动画,我没有得到动画效果。

下面是我的OnItemClickListener中的一个片段:

LinearLayout llMatchInfo = (LinearLayout) view.findViewById(R.id.matchInfo); 
//llMatchInfo.setVisibility(llMatchInfo.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);

Animation animation = AnimationUtils.loadAnimation(ctx, (llMatchInfo.getHeight() == 0) ? R.anim.down_from_top : R.anim.up_from_bottom);
llMatchInfo.startAnimation(animation);

有没有人能给出一些关于如何用height wrap_content和初始可见性view.gone来完成一个元素的动画?

如果我错过了一个明显的答案,我真的很抱歉,但我只是觉得我已经试过了一切...:-/

提前致谢

共有1个答案

钦楚青
2023-03-14

您可以使用此库:

https://github.com/traex/expandableLayout

它可以拯救你的生命和时间。这很简单,您只需要在布局上添加自定义listview,创建带有自定义实现的适配器,setAdapter和Voalá。

我只是想帮你...

 类似资料:
  • 我想要达到的目标 项目视图应占据项目的整个高度 可能是项目的高度小于回收视图中最高项目的高度,在这种情况下,它应该像上面的截图一样粘在顶部。 我遇到的虫子 正如上面的截图所示,视图正在被截断。 到目前为止我都试过了 起初,我在回收视图上使用wrap_content,现在它得到了支持。当当时屏幕上可见的视图都不是最高的时,它就不起作用了。这在视图层次结构的布局中是有意义的。如果高度依赖于任何数据,那

  • 单元格xml: 我直接在取景器上改变高度。我应该如何删除列之间的空间?

  • 已解决的检查答案如下... 因此,我正在尝试为我的Android应用程序创建一个评论功能,我想在recyclerview中显示评论,然后在recyclerview下面有一个按钮和textview来添加评论。我想让recyclerview有一定的高度,如果有很多评论,它就可以滚动,因为我不想让用户不得不向下滚动屏幕才能找到add按钮。 我不能让它工作,所以我想知道是否有人有这个问题。 我的XML(滚

  • 我试图读取一个csv文件,并将其设置为转换为另一种格式,以节省一些工作时间,但当一行的长度小于预期列时,我正在加载它的JTable会引发异常。如果行长度<列长度,是否有方法创建空单元格? 因此,您可以看到getValueAt(int row,int col)方法,如果col超过String[].length将导致错误。

  • 我想要一个flex项目采取100%的剩余高度,并显示栏。 问题似乎来自于我的,它占用了窗口高度的100%,而不占用剩余的空间。 https://jsfidle.net/jpo31gq9/

  • 问题内容: 我想让主体具有浏览器高度的100%。我可以使用CSS吗? 我尝试设置,但不起作用。 我想为页面设置背景色以填充整个浏览器窗口,但是如果页面内容很少,我将在底部看到一个难看的白色条。 问题答案: 尝试将html元素的高度也设置为100%。 Body向其父级(HTML)寻求如何缩放动态属性,因此HTML元素也需要设置其高度。 但是,身体的内容可能需要动态更改。将最小高度设置为100%将实现