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

View File

@ -18,7 +18,7 @@
android:layout_marginTop="40dp" android:layout_marginTop="40dp"
/> />
<com.ama.core.common.widget.PopMenuIconView <com.ama.core.common.widget.PopMenuView
android:id="@+id/pop_menu" android:id="@+id/pop_menu"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="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.view.animation.OvershootInterpolator
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.ImageView import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import com.ama.core.common.R import com.ama.core.common.R
import com.ama.core.common.databinding.LayoutPopIconMenuViewBinding import com.ama.core.common.databinding.LayoutPopIconMenuViewBinding
import com.ama.core.common.util.dp import com.ama.core.common.util.dp
class PopMenuIconView @JvmOverloads constructor( class PopMenuView @JvmOverloads constructor(
context: Context, context: Context,
attrs: AttributeSet? = null, attrs: AttributeSet? = null,
defStyleAttr: Int = 0 defStyleAttr: Int = 0
@ -29,10 +28,12 @@ class PopMenuIconView @JvmOverloads constructor(
data class MenuItem( data class MenuItem(
val iconResId: Int, val iconResId: Int,
val tvDrawable: Int,
val tvTextRes: Int,
val onClick: (View) -> Unit val onClick: (View) -> Unit
) )
private val mTvViewList = mutableListOf<TextView>() private val mItemViewList = mutableListOf<PopMenuItemView>()
private val mMenuItemList = mutableListOf<MenuItem>() private val mMenuItemList = mutableListOf<MenuItem>()
private var isMenuShowing = false private var isMenuShowing = false
private var itemSpacing = 0 private var itemSpacing = 0
@ -65,37 +66,26 @@ class PopMenuIconView @JvmOverloads constructor(
val subContainer = FrameLayout(context).apply { val subContainer = FrameLayout(context).apply {
setOnClickListener { setOnClickListener {
menuItem.onClick(this) 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 { layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply {
bottomMargin = itemSpacing bottomMargin = itemSpacing
gravity = Gravity.CENTER_HORIZONTAL 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) mBinding!!.llMenuContainer.addView(subContainer, 0)
} }
} }
fun setMenuText(menuIndex: Int, textContent: String) { fun setMenuText(menuIndex: Int, textContent: String) {
mTvViewList.get(menuIndex).setText(textContent) mItemViewList.get(menuIndex).setText(textContent)
} }
fun toggleMenu() { 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