Giter VIP home page Giter VIP logo

learn-coordinatorlayout-behavior's Introduction

behavior-learn

该项目是为了练习-> 使用CoordinatorLayout.Behavior 实现页面复杂联动效果 代码模仿实现美团商家详情界面内容联动

download apk

开发使用知识点顺带涉及到:

  1. Scroller+Handler 实现View自动滑动
  2. View属性动画
  3. 触摸事件分发机制
  4. ConstraintLayout约束布局

emmmmmmm 继续加油咯~

learn-coordinatorlayout-behavior's People

Contributors

ielse avatar iielse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learn-coordinatorlayout-behavior's Issues

注释的是已翻译java

// val effect = adInterpolator.getInterpolation(offset / offsetMax)
// val e: Int = argbEvaluator.evaluate(effect, Color.WHITE, 0xFF646464.toInt()) as Int
// vSearch.setImageDrawable(tintDrawable(drawableSearch, ColorStateList.valueOf(e)))
// vSearch.scaleX = (1 - 0.4 * effect).toFloat()
// vSearch.scaleY = (1 - 0.4 * effect).toFloat()
// vSearch.translationX = -(vSearchBorder.width - vSearch.width + dp(3)) * effect
// vSearchHint.alpha = effect
// vSearchHint.translationX = (vSearchHint.width / 3) * (1 - effect)
if (dy>0&&offset==offsetMax){
return 1F;
}else if (dy<0&&offset==0F){
return 0F;
}
offset+=dy;
if (offset>offsetMax){
offset=offsetMax;
}else if (offset<0){
offset=0F;
}
float effect = adInterpolator.getInterpolation(offset / offsetMax);
int e = (int) argbEvaluator.evaluate(effect,Color.WHITE,Color.parseColor("#999999"));
float kotlinturnjava (int dy){
if (dy>0&&offset==offsetMax){
return 1F;
}else if (dy<0&&offset==0F){
return 0F;
}
offset+=dy;
if (offset>offsetMax){
offset=offsetMax;
}else if (offset<0){
offset=0F;
}
float effect = adInterpolator.getInterpolation(offset / offsetMax);
int e = (int) argbEvaluator.evaluate(effect,Color.WHITE,Color.parseColor("#999999"));
sousuo_img.setImageDrawable(tintDrawable(getResources().getDrawable(R.mipmap.xin_khsousuo),ColorStateList.valueOf(e)));
sousuo_img.setScaleX(Float.parseFloat(String.valueOf(1 - 0.4 * effect)));
sousuo_img.setScaleY(Float.parseFloat(String.valueOf(1 - 0.4 * effect)));
hidesousuolay.setAlpha(effect);
hidesousuolay.setTranslationX(hidesousuolay.getWidth()-hidesousuolay.getWidth()+ DensityUtils.dip2px(NewUseShopActivity.this,3)*effect);
return effect;
}

这个没翻译:
if ((child.translationY < 0 || (child.translationY == 0F && dy > 0)) && !child.canScrollVertically()) {
val effect = layTitle.effectByOffset(dy)
selfView.vSmartTab.setBackgroundColor(argbEvaluator.evaluate(effect, Color.WHITE, 0xFFFAFAFA.toInt()) as Int)
val transY = -simpleTopDistance * effect
if (transY != child.translationY) {
child.translationY = transY
consumed[1] = dy
}

        if (type == 1) {
            isScrollToFullFood = true
        }
    } else if ((child.translationY > 0 || (child.translationY == 0F && dy < 0)) && !child.canScrollVertically()) {
        if (isScrollToFullFood) {
            child.translationY = 0F // top fling to bottom顶到底
        } else {
            child.translationY -= dy
            layContent.effectByOffset(child.translationY)
            laySettle.effectByOffset(child.translationY)
        }
        consumed[1] = dy
    } 

这段怎么用看不懂啊???求解

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.