fix(ui): 修复空态视图贴顶及刷新动画无法关闭问题
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import android.content.Intent
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.widget.FrameLayout
|
||||||
import androidx.activity.addCallback
|
import androidx.activity.addCallback
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
@@ -20,6 +21,7 @@ import com.shuwei.dish.match.dialog.CommonDialog
|
|||||||
import com.shuwei.dish.match.entity.FoodRecord
|
import com.shuwei.dish.match.entity.FoodRecord
|
||||||
import com.shuwei.dish.match.net.UiState
|
import com.shuwei.dish.match.net.UiState
|
||||||
import com.shuwei.dish.match.utils.DateTimeUtil
|
import com.shuwei.dish.match.utils.DateTimeUtil
|
||||||
|
import com.shuwei.dish.match.utils.ext.dp
|
||||||
import com.shuwei.dish.match.utils.ext.gone
|
import com.shuwei.dish.match.utils.ext.gone
|
||||||
import com.shuwei.dish.match.utils.ext.startActivity
|
import com.shuwei.dish.match.utils.ext.startActivity
|
||||||
import com.shuwei.dish.match.utils.ext.toast
|
import com.shuwei.dish.match.utils.ext.toast
|
||||||
@@ -78,6 +80,7 @@ class SamplingModeActivity : BaseActivity() {
|
|||||||
list.clear()
|
list.clear()
|
||||||
list.addAll(tempList)
|
list.addAll(tempList)
|
||||||
dishAdapter.notifyDataSetChanged()
|
dishAdapter.notifyDataSetChanged()
|
||||||
|
finishRefresh()
|
||||||
binding.refreshLayout.run {
|
binding.refreshLayout.run {
|
||||||
setEnableRefresh(false)
|
setEnableRefresh(false)
|
||||||
setEnableLoadMore(false)
|
setEnableLoadMore(false)
|
||||||
@@ -231,18 +234,11 @@ class SamplingModeActivity : BaseActivity() {
|
|||||||
return SwipeMenuItem(this).apply {
|
return SwipeMenuItem(this).apply {
|
||||||
setImage(R.drawable.ic_trash_white)
|
setImage(R.drawable.ic_trash_white)
|
||||||
setBackground(R.drawable.bg_swipe_delete)
|
setBackground(R.drawable.bg_swipe_delete)
|
||||||
width = dp2px(160)
|
width = 160.dp
|
||||||
height = ViewGroup.LayoutParams.MATCH_PARENT
|
height = ViewGroup.LayoutParams.MATCH_PARENT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* dp 转 px
|
|
||||||
*/
|
|
||||||
private fun dp2px(dp: Int): Int {
|
|
||||||
return (dp * resources.displayMetrics.density + 0.5f).toInt()
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
private fun addViewListener() {
|
private fun addViewListener() {
|
||||||
binding.btnAddSampling.setOnClickListener {
|
binding.btnAddSampling.setOnClickListener {
|
||||||
@@ -252,10 +248,19 @@ class SamplingModeActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
binding.refreshLayout.setOnRefreshListener {
|
binding.refreshLayout.setOnRefreshListener {
|
||||||
pageNo = 1
|
pageNo = 1
|
||||||
getSamplingList()
|
if (binding.dishRadioGroup.checkedRadioButtonId == R.id.rbSamplingFinished) {
|
||||||
|
getSamplingList()
|
||||||
|
} else {
|
||||||
|
finishRefresh()
|
||||||
|
refreshLocalData()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
binding.refreshLayout.setOnLoadMoreListener {
|
binding.refreshLayout.setOnLoadMoreListener {
|
||||||
getSamplingList()
|
if (binding.dishRadioGroup.checkedRadioButtonId == R.id.rbSamplingFinished) {
|
||||||
|
getSamplingList()
|
||||||
|
} else {
|
||||||
|
finishRefresh()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.rbSamplingCooking.setOnClickListener {
|
binding.rbSamplingCooking.setOnClickListener {
|
||||||
@@ -313,7 +318,17 @@ class SamplingModeActivity : BaseActivity() {
|
|||||||
}
|
}
|
||||||
emptyViewBinding!!.tvContent.text = "暂无数据"
|
emptyViewBinding!!.tvContent.text = "暂无数据"
|
||||||
emptyViewBinding!!.tvSubContent.text = "今日暂无采样数据,点击下方按钮新增采样"
|
emptyViewBinding!!.tvSubContent.text = "今日暂无采样数据,点击下方按钮新增采样"
|
||||||
dishAdapter.stateView = emptyViewBinding!!.root
|
|
||||||
|
// 方案B:沿用 adapter stateView,使用 FrameLayout.LayoutParams + minimumHeight 避免空态贴顶
|
||||||
|
emptyViewBinding!!.root.layoutParams = FrameLayout.LayoutParams(
|
||||||
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
||||||
|
FrameLayout.LayoutParams.MATCH_PARENT
|
||||||
|
)
|
||||||
|
binding.rvSamplingList.post {
|
||||||
|
emptyViewBinding!!.root.minimumHeight = binding.rvSamplingList.height
|
||||||
|
dishAdapter.stateView = emptyViewBinding!!.root
|
||||||
|
finishRefresh()
|
||||||
|
}
|
||||||
//dishAdapter.setStateViewLayout(requireContext(), R.layout-sw800dp.layout_empty_view)
|
//dishAdapter.setStateViewLayout(requireContext(), R.layout-sw800dp.layout_empty_view)
|
||||||
|
|
||||||
binding.refreshLayout.run {
|
binding.refreshLayout.run {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.content.Context
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.widget.FrameLayout
|
||||||
import androidx.lifecycle.Lifecycle
|
import androidx.lifecycle.Lifecycle
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.lifecycle.repeatOnLifecycle
|
import androidx.lifecycle.repeatOnLifecycle
|
||||||
@@ -247,7 +248,14 @@ class DishListFragment : BaseFragment<FragmentDishListBinding>() {
|
|||||||
}
|
}
|
||||||
emptyViewBinding!!.tvContent.text = "暂无数据"
|
emptyViewBinding!!.tvContent.text = "暂无数据"
|
||||||
emptyViewBinding!!.tvSubContent.text = "获取菜品数据失败,请检查网络设置或稍后重试"
|
emptyViewBinding!!.tvSubContent.text = "获取菜品数据失败,请检查网络设置或稍后重试"
|
||||||
dishAdapter.stateView = emptyViewBinding!!.root
|
emptyViewBinding!!.root.layoutParams = FrameLayout.LayoutParams(
|
||||||
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
||||||
|
FrameLayout.LayoutParams.MATCH_PARENT
|
||||||
|
)
|
||||||
|
binding.rvDishList.post {
|
||||||
|
emptyViewBinding!!.root.minimumHeight = binding.rvDishList.height
|
||||||
|
dishAdapter.stateView = emptyViewBinding!!.root
|
||||||
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user