我正在使用此方法Android: Expand/collapse animation在listview中有一个可扩展的linearlayout。我的listview行有一个带有简短描述的linearlayout,当我点击这个listview时,我调用AsyncTask来获取互联网上的长描述,膨胀行的隐藏线性布局并展开以显示接收到的数据。
问题是,如果我将目标高度设置为正在扩展的隐藏列表视图,一切工作都很完美,但我不知道我将从AsyncTask收到多少数据,所以我需要得到高度膨胀的隐藏线性布局。
我已经尝试过:
在网上阅读一些材料我发现视图在屏幕上绘制后只有一个高度。那么将此高度设置为扩展布局目标的最佳方法是什么?
我正在我的asyncTask的onPostExecute中扩充和扩展布局。
答案 0 :(得分:1)
考虑将Runnable发布到虚增的视图
final View view = findViewById(R.id.something);
view.post(new Runnable()
{
@Override
public void run() {
Log.d(TAG, "Height = "+view.getHeight());
}
});
此runnable保留在事件队列中,直到视图完全膨胀,因此getHeight()和getWidth()方法返回非零值。 Romain Guy的解释是here