zoukankan      html  css  js  c++  java
  • SnackBar动画

        void animateViewIn() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
                ViewCompat.setTranslationY(mView, mView.getHeight());
                ViewCompat.animate(mView)
                        .translationY(0f)
                        .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
                        .setDuration(ANIMATION_DURATION)
                        .setListener(new ViewPropertyAnimatorListenerAdapter() {
                            @Override
                            public void onAnimationStart(View view) {
                                mView.animateChildrenIn(ANIMATION_DURATION - ANIMATION_FADE_DURATION,
                                        ANIMATION_FADE_DURATION);
                            }
    
                            @Override
                            public void onAnimationEnd(View view) {
                                onViewShown();
                            }
                        }).start();
            } else {
                Animation anim = AnimationUtils.loadAnimation(mView.getContext(),
                        R.anim.design_snackbar_in);
                anim.setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR);
                anim.setDuration(ANIMATION_DURATION);
                anim.setAnimationListener(new Animation.AnimationListener() {
                    @Override
                    public void onAnimationEnd(Animation animation) {
                        onViewShown();
                    }
    
                    @Override
                    public void onAnimationStart(Animation animation) {}
    
                    @Override
                    public void onAnimationRepeat(Animation animation) {}
                });
                mView.startAnimation(anim);
            }
        }
    

       

    SnackbarManager类
        private void scheduleTimeoutLocked(SnackbarRecord r) {
            if (r.duration == Snackbar.LENGTH_INDEFINITE) {
                // If we're set to indefinite, we don't want to set a timeout
                return;
            }
    
            int durationMs = LONG_DURATION_MS;
            if (r.duration > 0) {
                durationMs = r.duration;
            } else if (r.duration == Snackbar.LENGTH_SHORT) {
                durationMs = SHORT_DURATION_MS;
            }
            mHandler.removeCallbacksAndMessages(r);
            mHandler.sendMessageDelayed(Message.obtain(mHandler, MSG_TIMEOUT, r), durationMs);
        }
        private static final int SHORT_DURATION_MS = 1500;
        private static final int LONG_DURATION_MS = 2750;
  • 相关阅读:
    在Xcode5中修改整个项目名
    EFCore的事务和分布式事务的使用
    NET CORE API权限控制之JWT的创建和引用
    NET CORE引用log4net日志文件的应用
    NET CORE在Linux下部署并且用Nginx 做负载均衡(主要说明CentOS)
    Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包
    Laravel Packages
    Laravel artisan commands
    ExtJs xtype
    ExtJS Complex data binding
  • 原文地址:https://www.cnblogs.com/huyang011/p/7447064.html
Copyright © 2011-2022 走看看