56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
package com.ckkj.water.utils;
|
||
|
||
import android.view.View;
|
||
import android.view.animation.AccelerateInterpolator;
|
||
import android.view.animation.DecelerateInterpolator;
|
||
|
||
/**
|
||
* @Description TODO
|
||
* @systemUser 86133
|
||
* @Author FengJingQi
|
||
* @Date 04-18-2025 周五 11:12
|
||
*/
|
||
|
||
public class ViewShowOrHideAnimate {
|
||
|
||
public static void showOptionsLayout(View view) {
|
||
if (view.getHeight() == 0) {
|
||
// View还没测量好,post到下一帧去执行
|
||
view.post(new Runnable() {
|
||
@Override
|
||
public void run() {
|
||
startShowAnim(view);
|
||
}
|
||
});
|
||
} else {
|
||
startShowAnim(view);
|
||
}
|
||
}
|
||
|
||
public static void startShowAnim(View view) {
|
||
view.setVisibility(View.VISIBLE);
|
||
view.setAlpha(0f);
|
||
view.setTranslationY(100); // 100px下移初始
|
||
|
||
view.animate()
|
||
.translationY(0)
|
||
.setDuration(300)
|
||
.setInterpolator(new DecelerateInterpolator()) // 出现时慢慢减速
|
||
.start();
|
||
}
|
||
|
||
public static void hideOptionsLayout(View view) {
|
||
view.animate()
|
||
.translationY(100) // 往下移
|
||
.setDuration(300)
|
||
.setInterpolator(new AccelerateInterpolator()) // 消失时加速离开
|
||
.withEndAction(new Runnable() {
|
||
@Override
|
||
public void run() {
|
||
view.setVisibility(View.GONE);
|
||
}
|
||
})
|
||
.start();
|
||
}
|
||
|
||
} |