Skip to content

Commit 300a620

Browse files
author
gabri
committed
Added onPreDrawListener
1 parent 7664470 commit 300a620

1 file changed

Lines changed: 27 additions & 3 deletions

File tree

AnimationTest/src/it/gmariotti/android/examples/animationtest/MainActivity.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,43 @@
2121
import android.os.Bundle;
2222
import android.view.View;
2323
import android.view.ViewGroup;
24+
import android.view.ViewTreeObserver;
2425
import android.widget.LinearLayout;
2526

2627
public class MainActivity extends Activity {
2728

2829
LinearLayout mLinearLayout;
2930
LinearLayout mLinearLayoutHeader;
31+
ValueAnimator mAnimator;
3032

3133
@Override
3234
protected void onCreate(Bundle savedInstanceState) {
3335
super.onCreate(savedInstanceState);
3436
setContentView(R.layout.activity_main);
3537

3638
mLinearLayout = (LinearLayout) findViewById(R.id.expandable);
37-
mLinearLayout.setVisibility(View.GONE);
39+
//mLinearLayout.setVisibility(View.GONE);
3840
mLinearLayoutHeader = (LinearLayout) findViewById(R.id.header);
3941

42+
//Add onPreDrawListener
43+
mLinearLayout.getViewTreeObserver().addOnPreDrawListener(
44+
new ViewTreeObserver.OnPreDrawListener() {
45+
46+
@Override
47+
public boolean onPreDraw() {
48+
mLinearLayout.getViewTreeObserver().removeOnPreDrawListener(this);
49+
mLinearLayout.setVisibility(View.GONE);
50+
51+
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
52+
final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
53+
mLinearLayout.measure(widthSpec, heightSpec);
54+
55+
mAnimator = slideAnimator(0, mLinearLayout.getMeasuredHeight());
56+
return true;
57+
}
58+
});
59+
60+
4061
mLinearLayoutHeader.setOnClickListener(new View.OnClickListener() {
4162

4263
@Override
@@ -54,12 +75,15 @@ public void onClick(View v) {
5475
private void expand() {
5576
//set Visible
5677
mLinearLayout.setVisibility(View.VISIBLE);
57-
78+
79+
/* Remove and used in preDrawListener
5880
final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
5981
final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
6082
mLinearLayout.measure(widthSpec, heightSpec);
6183
62-
ValueAnimator mAnimator = slideAnimator(0, mLinearLayout.getMeasuredHeight());
84+
mAnimator = slideAnimator(0, mLinearLayout.getMeasuredHeight());
85+
*/
86+
6387
mAnimator.start();
6488
}
6589

0 commit comments

Comments
 (0)