1

我有一个ScrollView包含一个LinearLayout.

在代码中,我将项目添加到LinearLayout并且它很好地扩展。

当我在代码中删除所有项目时LinearLayoutLinearLayout它们的大小保持不变,但它是空的。

我如何ScrollView在它有项目reclaim the heightLinearLayout使用它并缩小 LinearLayout 以使用最小高度,因为它现在是空的?

我尝试过(在 C# 中):

        linearLayout.RemoveAllViewsInLayout();
        linearLayout.PostInvalidate();
        scrollView.PostInvalidate();

Java 或 C# 的答案很好。

4

2 回答 2

2

I only have Java experience with Android, so I would try using:

linearLayout.requestLayout();

This should cause another layout pass, and assuming your LinearLayout is set to WRAP_CONTENT it will measure all the children and size itself to fit the smallest space that the children occupy (or minHeight if you have that set and it is larger).

于 2012-06-11T21:35:03.107 回答
0

这个技巧似乎奏效了。结果是调整了线性布局 id 的大小和滚动视图:

        linearLayout.RemoveAllViewsInLayout();
        linearLayout.Visibility = ViewStates.Gone;
        scrollView.SmoothScrollTo(0, 0);
        linearLayout.Visibility = ViewStates.Visible;

必须有更好的方法,但这有效。

于 2012-06-11T21:27:20.210 回答