0

我正在使用这种方法Android:展开/折叠动画在我的列表视图中有一个可展开的线性布局。我的列表视图行显示了带有简短描述的线性布局,当我单击此列表视图时,我调用 AsyncTask 以获取 Internet 上的详细描述,膨胀该行的隐藏线性布局并展开以显示接收到的数据。

问题是,如果我将目标高度设置为正在扩展的隐藏列表视图,一切都会完美无缺,但我不知道我将从 AsyncTask 收到多少数据,所以我需要获取膨胀隐藏的高度线性布局。

我已经尝试过:

在网上阅读了一些材料,我发现视图在屏幕上绘制后只有一个高度。那么,将这个高度设置为展开布局的目标的最佳方法是什么?

我在我的 asyncTask 的 onPostExecute 中膨胀和扩展布局。

4

1 回答 1

2

考虑将 Runnable 发布到膨胀视图

final View view = findViewById(R.id.something);
view.post(new Runnable()
    {
        @Override
        public void run() {
            Log.d(TAG, "Height = "+view.getHeight());
        }
    });

此可运行对象保留在事件队列中,直到视图完全膨胀,因此 getHeight() 和 getWidth() 方法返回非零值。Romain Guy 的解释在这里

于 2013-01-25T11:56:45.290 回答