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.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import androidx.activity.addCallback
|
||||
import androidx.lifecycle.Lifecycle
|
||||
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.net.UiState
|
||||
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.startActivity
|
||||
import com.shuwei.dish.match.utils.ext.toast
|
||||
@@ -78,6 +80,7 @@ class SamplingModeActivity : BaseActivity() {
|
||||
list.clear()
|
||||
list.addAll(tempList)
|
||||
dishAdapter.notifyDataSetChanged()
|
||||
finishRefresh()
|
||||
binding.refreshLayout.run {
|
||||
setEnableRefresh(false)
|
||||
setEnableLoadMore(false)
|
||||
@@ -231,18 +234,11 @@ class SamplingModeActivity : BaseActivity() {
|
||||
return SwipeMenuItem(this).apply {
|
||||
setImage(R.drawable.ic_trash_white)
|
||||
setBackground(R.drawable.bg_swipe_delete)
|
||||
width = dp2px(160)
|
||||
width = 160.dp
|
||||
height = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* dp 转 px
|
||||
*/
|
||||
private fun dp2px(dp: Int): Int {
|
||||
return (dp * resources.displayMetrics.density + 0.5f).toInt()
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private fun addViewListener() {
|
||||
binding.btnAddSampling.setOnClickListener {
|
||||
@@ -252,10 +248,19 @@ class SamplingModeActivity : BaseActivity() {
|
||||
}
|
||||
binding.refreshLayout.setOnRefreshListener {
|
||||
pageNo = 1
|
||||
getSamplingList()
|
||||
if (binding.dishRadioGroup.checkedRadioButtonId == R.id.rbSamplingFinished) {
|
||||
getSamplingList()
|
||||
} else {
|
||||
finishRefresh()
|
||||
refreshLocalData()
|
||||
}
|
||||
}
|
||||
binding.refreshLayout.setOnLoadMoreListener {
|
||||
getSamplingList()
|
||||
if (binding.dishRadioGroup.checkedRadioButtonId == R.id.rbSamplingFinished) {
|
||||
getSamplingList()
|
||||
} else {
|
||||
finishRefresh()
|
||||
}
|
||||
}
|
||||
|
||||
binding.rbSamplingCooking.setOnClickListener {
|
||||
@@ -313,7 +318,17 @@ class SamplingModeActivity : BaseActivity() {
|
||||
}
|
||||
emptyViewBinding!!.tvContent.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)
|
||||
|
||||
binding.refreshLayout.run {
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.lifecycle.repeatOnLifecycle
|
||||
@@ -247,7 +248,14 @@ class DishListFragment : BaseFragment<FragmentDishListBinding>() {
|
||||
}
|
||||
emptyViewBinding!!.tvContent.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) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user