bug修改 - 视频主界面的那个红包进度条,如果在进度条没有满的时候点击红包的话,可以加一个tips

This commit is contained in:
renhaoting 2025-12-26 14:33:07 +08:00
parent b010c1e4d2
commit 5d217d025b
3 changed files with 23 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import android.view.LayoutInflater
import android.widget.LinearLayout
import androidx.core.view.isVisible
import com.ama.core.architecture.util.AndroidUtil
import com.ama.core.architecture.util.setOnClickBatch
import com.vididin.real.money.game.R
import com.vididin.real.money.game.databinding.LayoutDragIconViewBinding
@ -24,9 +25,11 @@ class HomeDragIconView @JvmOverloads constructor(
init {
mBinding = LayoutDragIconViewBinding.inflate(LayoutInflater.from(context), this, true)
mBinding.progressContainer.setOnClickListener {
mBinding.dragLayout.setClickedCallback{
AndroidUtil.showTopToast(R.string.gold_not_ready_hint)
}
}

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<com.ama.core.common.widget.DragLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drag_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
@ -46,7 +47,8 @@
android:id="@+id/progress_container"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:focusable="true">
<com.ama.core.architecture.widget.CircleProgressBar
android:id="@+id/progress_bar"
android:layout_width="50dp"

View File

@ -24,6 +24,11 @@ class DragLayout @JvmOverloads constructor(
private var lastTouchX = 0f
private var lastTouchY = 0f
private var startTouchX = 0f
private var startTouchY = 0f
private var onClicked: (()->Unit)? = null
var onDragStart: ((View) -> Unit)? = null
var onDragEnd: ((View) -> Unit)? = null
@ -65,22 +70,27 @@ class DragLayout @JvmOverloads constructor(
return false
}
fun setClickedCallback(onClicked: ()->Unit) {
this.onClicked = onClicked
}
override fun onTouchEvent(event: MotionEvent): Boolean {
if (draggedView == null) return false
when (event.action and MotionEvent.ACTION_MASK) {
MotionEvent.ACTION_DOWN -> {
startTouchX = event.x
startTouchY = event.y
return true
}
MotionEvent.ACTION_MOVE -> {
if (!isDragging) {
if (!isDragging && (Math.abs((event.x - startTouchX)) > 5f || Math.abs((event.y - startTouchY)) > 5f)) {
startDrag()
}
val dx = event.x - lastTouchX
val dy = event.y - lastTouchY
updateViewPosition(dx, dy)
lastTouchX = event.x
lastTouchY = event.y
@ -88,6 +98,10 @@ class DragLayout @JvmOverloads constructor(
}
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
if (!isDragging) {
onClicked?.invoke()
}
endDrag()
return true
}