【问题标题】:Get Height of inflated Linear Layout获取膨胀线性布局的高度
【发布时间】:2013-01-25 19:56:45
【问题描述】:

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

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

我已经试过了:

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

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

【问题讨论】:

    标签: android


    【解决方案1】:

    考虑将 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 的解释是here

    【讨论】:

    • 它没有用。我在我的应用程序中创建的顺序是:获取数据> 膨胀视图> 将此视图插入隐藏视图> 扩展视图。当我将膨胀视图添加到其中时,由于我的隐藏视图的高度为 0,因此膨胀视图的返回高度也为 0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多