Fix bug: - 文案需要居中显示,然后看视频得金币的那个200前面需要加个金币icon

This commit is contained in:
renhaoting 2026-01-07 18:30:47 +08:00
parent bb684928ca
commit 7a381c1ff6
10 changed files with 108 additions and 35 deletions

View File

@ -3,10 +3,7 @@ package com.gamedog.vididin.main.fragments
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.graphics.toColorInt
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks
@ -24,8 +21,7 @@ import com.ama.core.architecture.util.ResUtil
import com.ama.core.architecture.util.ResUtil.dp
import com.ama.core.architecture.util.SpUtil
import com.ama.core.architecture.util.setStatusBarDarkFont
import com.ama.core.common.util.asSafe
import com.ama.core.common.widget.PopMenuIconView
import com.ama.core.common.widget.PopMenuView
import com.gamedog.statisticreporter.StatisticUtil
import com.gamedog.vididin.VidiConst
import com.gamedog.vididin.VididinEvents
@ -36,7 +32,6 @@ import com.gamedog.vididin.main.WatchAdDialog
import com.gamedog.vididin.main.fragments.home.HomeFragmentStateAdapter
import com.gamedog.vididin.main.fragments.home.fragment.HomeItemFragment
import com.gamedog.vididin.main.interfaces.OnSwitchTabListener
import com.gamedog.vididin.main.interfaces.OnTabStyleListener
import com.gamedog.vididin.manager.TaskManager
import com.gamedog.vididin.router.Router
import com.gamedog.vididin.youtubestatistic.RewardConst
@ -86,17 +81,17 @@ class HomeFragment : AppViewsFragment<ViewBinding, UiState, ViewModel>(), OnSwit
popMenu.setMenuList(
mutableListOf(
PopMenuIconView.MenuItem(R.mipmap.home_menu_1) {
PopMenuView.MenuItem(R.mipmap.home_menu_1, 0, 0) {
Router.Benefit.startActivity(requireActivity())
StatisticUtil.reportEvents(StatisticUtil.KEY_Chest_Claim_Click)
},
PopMenuIconView.MenuItem(R.mipmap.home_menu_2) {
PopMenuView.MenuItem(R.mipmap.home_menu_2,R.mipmap.icon_gold_ss, 0) {
WatchAdDialog(requireActivity(), VidiConst.WATCH_AD_FOR_DAILY_EARN_GOLD, WatchAdDialog.FROM_HOME_MENU,null).show()
},
PopMenuIconView.MenuItem(R.mipmap.home_menu_3) {
PopMenuView.MenuItem(R.mipmap.home_menu_3,0, 0) {
Router.Game.startActivity(requireActivity())
},
PopMenuIconView.MenuItem(R.mipmap.home_menu_4) {
PopMenuView.MenuItem(R.mipmap.home_menu_4,0, 0) {
Router.ZeroBuy.startActivity(requireActivity())
}
))

View File

@ -18,7 +18,7 @@
android:layout_marginTop="40dp"
/>
<com.ama.core.common.widget.PopMenuIconView
<com.ama.core.common.widget.PopMenuView
android:id="@+id/pop_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -0,0 +1,42 @@
package com.ama.core.common.widget
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.FrameLayout
import com.ama.core.common.databinding.LayoutPopItemViewBinding
class PopMenuItemView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {
private lateinit var mDataItem: PopMenuView.MenuItem
private var mBinding: LayoutPopItemViewBinding
init {
mBinding = LayoutPopItemViewBinding.inflate(LayoutInflater.from(context), this, true)
}
fun setData(dataItem: PopMenuView.MenuItem) {
mDataItem = dataItem
with(mBinding) {
ivBg.setImageResource(mDataItem.iconResId)
if (mDataItem.tvDrawable > 0) {
tvName.setCompoundDrawablesWithIntrinsicBounds(resources.getDrawable(mDataItem.tvDrawable), null, null, null)
}
if (mDataItem.tvTextRes > 0) {
tvName.text = resources.getString(mDataItem.tvTextRes)
}
}
}
fun setText(textContent: String) {
mBinding.tvName.text = textContent
}
}

View File

@ -14,14 +14,13 @@ import android.view.animation.AccelerateInterpolator
import android.view.animation.OvershootInterpolator
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.ama.core.common.R
import com.ama.core.common.databinding.LayoutPopIconMenuViewBinding
import com.ama.core.common.util.dp
class PopMenuIconView @JvmOverloads constructor(
class PopMenuView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
@ -29,10 +28,12 @@ class PopMenuIconView @JvmOverloads constructor(
data class MenuItem(
val iconResId: Int,
val tvDrawable: Int,
val tvTextRes: Int,
val onClick: (View) -> Unit
)
private val mTvViewList = mutableListOf<TextView>()
private val mItemViewList = mutableListOf<PopMenuItemView>()
private val mMenuItemList = mutableListOf<MenuItem>()
private var isMenuShowing = false
private var itemSpacing = 0
@ -65,37 +66,26 @@ class PopMenuIconView @JvmOverloads constructor(
val subContainer = FrameLayout(context).apply {
setOnClickListener {
menuItem.onClick(this)
//dismissMenu()
}
ImageView(context).apply {
setImageResource(menuItem.iconResId)
layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply {
bottomMargin = itemSpacing
}
addView(this)
}
val textView = TextView(context)
mTvViewList.add(textView)
textView.apply {
setTextSize(10F)
setTextColor(Color.WHITE)
layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply {
bottomMargin = itemSpacing
gravity = Gravity.CENTER_HORIZONTAL
topMargin = 90
topMargin = 10
}
addView(this)
val itemView = PopMenuItemView(context).apply {
setData(menuItem)
}
mItemViewList.add(itemView)
addView(itemView)
}
mBinding!!.llMenuContainer.addView(subContainer, 0)
}
}
fun setMenuText(menuIndex: Int, textContent: String) {
mTvViewList.get(menuIndex).setText(textContent)
mItemViewList.get(menuIndex).setText(textContent)
}
fun toggleMenu() {

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
tools:ignore="ResourceName">
<ImageView
android:id="@+id/iv_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/home_menu_1"
android:layout_gravity="center_horizontal"
/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="bottom|center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/home_menu_tv_bg"
android:layout_gravity="center"
/>
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:drawablePadding="2dp"
android:text="name"
android:textColor="#FFFFFF"
android:textSize="10sp"
android:textStyle="bold"
android:layout_marginBottom="2dp"
/>
</FrameLayout>
</FrameLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB