解决了按钮一直抖动的BUG

This commit is contained in:
free will committed 2021-08-12 22:18:19 +08:00
1 parent ea6d8f08dd
commit 62dd3fdb02
2 files changed
+25 -17

No files matched your search

@@ -134,7 +134,7 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
// 设置点击连接按钮时的执行逻辑
btnConnect.setOnClickListener(v -> {
btnConnect.setClickable(false);
ViewExtensionKt.animer(btnConnect,
ViewExtensionKt.animer0(btnConnect,
ViewExtensionKt.alphaAnimation(btnConnect,1.0f,0.3f));
if(!isConnected){
@@ -223,50 +223,38 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
EventBus.getDefault().removeStickyEvent(connectEvent);
// 接收VPN service状态,展示到界面
if(connectEvent.getSuccess()){
System.out.println("@@@@ 1");
isConnected=connectEvent.getConnected();
if(connectEvent.getConnected()){
System.out.println("@@@@ 1.1");
showSuccess("连接成功");
VPNstatus.setText("VPN正在运行中");
VPNstatus.setTextColor(getColor(R.color.colorPrimary));
}else{
System.out.println("@@@@ 1.2");
showSuccess("断开连接成功");
VPNstatus.setText("VPN已经停止运行");
VPNstatus.setTextColor(getColor(R.color.colorPrimaryYellow));
}
}else{
System.out.println("@@@@ 2");
if (connectEvent.getConnected()) {
System.out.println("@@@@ 2.1");
showError("断开连接失败");
VPNstatus.setText("断开连接失败");
VPNstatus.setTextColor(getColor(R.color.colorPrimaryYellow));
} else {
System.out.println("@@@@ 2.2");
showError("连接失败");
VPNstatus.setText("连接失败");
VPNstatus.setTextColor(getColor(R.color.colorPrimaryYellow));
}
}
System.out.println("fuck 1");
// 修改按钮状态
btnConnect.setClickable(true);
System.out.println("fuck 2");
System.out.println("目前连接状态: "+isConnected);
if (isConnected) {
System.out.println("fuck 2.1");
btnConnect.setImageResource(R.drawable.security);
} else {
System.out.println("fuck 2.2");
btnConnect.setImageResource(R.drawable.launch);
}
System.out.println("fuck 3");
ViewExtensionKt.animer(btnConnect,ViewExtensionKt.alphaAnimation(btnConnect,
0.3f,0.1f));
System.out.println("fuck 4");
ViewExtensionKt.animer1000(btnConnect,ViewExtensionKt.alphaAnimation(btnConnect,
0.3f,1.0f));
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
@@ -280,7 +268,7 @@ public class MainActivity extends MINVpnBaseActivity<MainActivityPresenter>
// 修改按钮状态
btnConnect.setClickable(true);
btnConnect.setImageResource(R.drawable.launch);
ViewExtensionKt.animer(btnConnect,ViewExtensionKt.alphaAnimation(btnConnect,
0.3f,0.1f));
ViewExtensionKt.animer1000(btnConnect,ViewExtensionKt.alphaAnimation(btnConnect,
0.3f,1.0f));
}
}
@@ -121,6 +121,26 @@ fun View.animer(vararg animations: ObjectAnimator, listener: Animator.AnimatorLi
animatorSet.addListener(listener)
animatorSet.start()
}
fun View.animer0(vararg animations: ObjectAnimator) {
if (animations.isEmpty())
return
val animatorSet = AnimatorSet()
val builder = animatorSet.setDuration(0)
.play(animations[0])
animations.filterIndexed { index, _ -> index != 0 }
.forEach { builder.with(it) }
animatorSet.start()
}
fun View.animer1000(vararg animations: ObjectAnimator) {
if (animations.isEmpty())
return
val animatorSet = AnimatorSet()
val builder = animatorSet.setDuration(1000)
.play(animations[0])
animations.filterIndexed { index, _ -> index != 0 }
.forEach { builder.with(it) }
animatorSet.start()
}
fun View.animer(vararg animations: ObjectAnimator, duration: Long) {
if (animations.isEmpty())