Fix bug: - 文案需要居中显示,然后看视频得金币的那个200前面需要加个金币icon
This commit is contained in:
parent
bb684928ca
commit
7a381c1ff6
|
|
@ -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())
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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 {
|
layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply {
|
||||||
setImageResource(menuItem.iconResId)
|
bottomMargin = itemSpacing
|
||||||
layoutParams = FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply {
|
gravity = Gravity.CENTER_HORIZONTAL
|
||||||
bottomMargin = itemSpacing
|
topMargin = 10
|
||||||
}
|
}
|
||||||
addView(this)
|
val itemView = PopMenuItemView(context).apply {
|
||||||
}
|
setData(menuItem)
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
addView(this)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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() {
|
||||||
|
|
@ -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 |
Loading…
Reference in New Issue