我有一个ListView,其子项在点击时切换可见性。每个项目都有两个孩子,一次只能看到一个孩子,另一个是gone
,如果单击该项目,则会切换其子项的可见性。
非常不幸的是,一个孩子比另一个孩子高,所以列表视图的高度需要在每个切换时改变,但这不会发生。高度保持不变。
我尝试过使用LayoutParams但没有得到任何东西。
我该如何解决这个问题?
答案 0 :(得分:1)
经过大量的试验和错误后,我通过在更改视图的可见性后更改列表视图的LayoutParams,设法使其工作变得简单。
view.setVisibility(View.GONE);
LinearLayout layout = (LinearLayout) view.getParent();
layout.getChildAt(0).setVisibility(View.VISIBLE);
((ListView) layout.getParent()).getLayoutParams().height =
LinearLayout.LayoutParams.MATCH_PARENT;
请注意,我的ListView中的项目如下所示
<LineaLayout>
<LinearLayout
onclick="alterVisibility">
</LinearLayout>
<LinearLayout
onclick="alterVisibility"
visibility="gone">
</LinearLayout>
</LinearLayout>