2016-12-07 32 views
0

我的目的是讓一個看不見的LinearLayout在單擊某個特定按鈕時呈現動畫效果。爲此,我將默認高度設置爲WRAP_CONTENT,在應用程序啓動時獲取高度,將高度設置爲0,然後在單擊按鈕時啓動動畫。這裏是代碼:獲取WRAP_CONTENT高度將會是什麼

linearLayout.post(new Runnable() { 
    @Override 
    public void run(){ 
     height = linearLayout.getMeasuredHeight(); 
     linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, 0)); 
    } 
}); 


findViewById(R.id.btnOperator).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Animation ani = new ShowAnim(linearLayout, height/* target layout height */); 
     ani.setDuration(1000/* animation time */); 
     linearLayout.startAnimation(ani); 

    } 
}); 

這項工作很不錯,但我想做的不同。我想,默認高度爲0,然後計算WRAP_CONTENT高度會是什麼,並把它傳遞到:

Animation ani = new ShowAnim(linearLayout, height/* target layout height */); 

我怎麼能這樣做?我搜索,但發現任何東西。

回答

2

試試這個代碼:

linearLayout.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
height = linearLayout.getMeasuredHeight(); 
+0

它完美的作品,謝謝。 –

相關問題