menu delay disappears

This commit is contained in:
Li ZongYing
2024-02-20 11:33:30 +08:00
parent 1417bbf57b
commit 84a6c0f78e
9 changed files with 237 additions and 22 deletions
@@ -2,12 +2,14 @@ package com.lizongying.mytv
import android.graphics.Color
import android.view.ContextThemeWrapper
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.view.animation.ScaleAnimation
import android.widget.ImageView
import androidx.leanback.widget.ImageCardView
import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.lizongying.mytv.models.TVListViewModel
@@ -48,7 +50,7 @@ class CardAdapter(private val owner: LifecycleOwner, private var tvListViewModel
val tvViewModel = item as TVViewModel
val cardView = viewHolder.view as ImageCardView
cardView.setOnFocusChangeListener { _, hasFocus ->
val onFocusChangeListener = View.OnFocusChangeListener { _, hasFocus ->
listener?.onItemFocusChange(item, hasFocus)
if (hasFocus) {
startScaleAnimation(cardView, 0.9f, 1.0f)
@@ -57,6 +59,8 @@ class CardAdapter(private val owner: LifecycleOwner, private var tvListViewModel
}
}
cardView.onFocusChangeListener = onFocusChangeListener
cardView.setOnClickListener { _ ->
listener?.onItemClicked(item)
}
@@ -93,7 +93,8 @@ class MainActivity : FragmentActivity() {
} else {
packageInfo.versionCode.toLong()
}
settingFragment = SettingFragment(versionName, versionCode, channelReversal, channelNum, bootStartup)
settingFragment =
SettingFragment(versionName, versionCode, channelReversal, channelNum, bootStartup)
}
fun showInfoFragment(tvViewModel: TVViewModel) {
@@ -148,7 +149,7 @@ class MainActivity : FragmentActivity() {
if (mainFragment.isHidden) {
mainFragment.setPosition()
transaction.show(mainFragment)
keepRunnable()
mainActive()
} else {
transaction.hide(mainFragment)
}
@@ -156,7 +157,7 @@ class MainActivity : FragmentActivity() {
transaction.commit()
}
fun keepRunnable() {
fun mainActive() {
handler.removeCallbacks(hideMain)
handler.postDelayed(hideMain, delayHideMain)
}
@@ -84,6 +84,19 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
itemBinding.rowItems.layoutManager =
LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
itemBinding.rowItems.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
// super.onScrolled(recyclerView, dx, dy)
// val layoutManager = recyclerView.layoutManager as LinearLayoutManager
// val firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition()
// val firstVisibleViewHolder = recyclerView.findViewHolderForAdapterPosition(firstVisibleItemPosition)
// if (firstVisibleViewHolder != null && !firstVisibleViewHolder.itemView.hasFocus()) {
// firstVisibleViewHolder.itemView.requestFocus()
// }
(activity as MainActivity).mainActive()
}
})
val layoutParams = itemBinding.row.layoutParams as ViewGroup.MarginLayoutParams
layoutParams.topMargin = dpToPx(11F)
itemBinding.row.layoutParams = layoutParams
@@ -158,7 +171,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
override fun onItemFocusChange(tvViewModel: TVViewModel, hasFocus: Boolean) {
if (hasFocus) {
tvListViewModel.setItemPositionCurrent(tvViewModel.id.value!!)
(activity as MainActivity).keepRunnable()
(activity as MainActivity).mainActive()
}
}
@@ -1,11 +1,9 @@
package com.lizongying.mytv
import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.RequiresApi
import androidx.fragment.app.DialogFragment
import com.lizongying.mytv.databinding.DialogBinding
-1
View File
@@ -13,7 +13,6 @@
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="0dp"
android:text="99"
android:textColor="#FFEEEEEE"
android:textStyle="bold"
android:textSize="50sp" />