Toolbar 축소된 애니메이션
/** * getViewTreeObserver view * view onCreate , View onResume * , view * addOnPreDrawListener: * , */
mToolbar.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
mToolbar.getViewTreeObserver().removeOnPreDrawListener(this);
final int widthSpec=View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
final int heightSpec=View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
mToolbar.measure(widthSpec, heightSpec);
mToolbarHeight = mToolbar.getHeight();
/***
Toolbar
**/
collapseToolbar();
return true; }
});
collaspseToolbar
public void collapseToolbar() {
int targetHeight = 0;
TypedValue value = new TypedValue();
if (getActivity().getTheme().resolveAttribute(android.R.attr.actionBarSize,value,true)){
// toolbar
targetHeight=TypedValue.complexToDimensionPixelSize(value.data, getResources().getDisplayMetrics()); }
// toolbar toolbar
ValueAnimator valueAnimator=ValueAnimator.ofInt(mToolbarHeight, DeviceUtils.dip2px(getActivity(),120));
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
// Toolbar
ViewGroup.LayoutParams lp = mToolbar.getLayoutParams();
lp.height =(Integer) animation.getAnimatedValue();
// toolbar, toolbar
Log.d("TAG","animator size : "+animation.getAnimatedValue());
mToolbar.setLayoutParams(lp);
mToolbar.invalidate();
}
});
valueAnimator.setDuration(2000);
valueAnimator.start();
valueAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
// toolbar
mPresenter.loadWeatherData(mRecycle);
YoYo.with(Techniques.ZoomIn).delay(600).duration(400).playOn(mFab);
/* // Animate fab
ViewCompat.animate(mFab).setStartDelay(600).setDuration(400).scaleY(1).scaleX(1).start();*/ }
});
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.