修复目录最后一项视图被遮挡的问题

This commit is contained in:
HapeLee
2025-08-28 14:15:55 +08:00
parent 1a2bd5f431
commit bc9bd557bb
2 changed files with 77 additions and 54 deletions
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.graphics.Canvas
import android.graphics.Rect
import android.os.Bundle
import android.view.View
import androidx.core.content.ContextCompat
@@ -27,7 +28,7 @@ import io.legato.kazusa.model.CacheBook
import io.legato.kazusa.ui.widget.recycler.UpLinearLayoutManager
import io.legato.kazusa.ui.widget.recycler.VerticalDivider
import io.legato.kazusa.utils.VibrationUtils
import io.legato.kazusa.utils.applyNavigationBarMargin
import io.legato.kazusa.utils.applyNavigationBarPadding
import io.legato.kazusa.utils.dpToPx
import io.legato.kazusa.utils.observeEvent
import io.legato.kazusa.utils.themeColor
@@ -147,11 +148,24 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
binding.recyclerView.layoutManager = mLayoutManager
binding.recyclerView.addItemDecoration(VerticalDivider(requireContext()))
binding.recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() {
override fun getItemOffsets(
outRect: Rect,
view: View,
parent: RecyclerView,
state: RecyclerView.State
) {
if (parent.getChildAdapterPosition(view) == state.itemCount - 1) {
outRect.bottom = 80.dpToPx()
}
}
})
binding.recyclerView.adapter = adapter
}
private fun initView() = binding.run {
cdBase.applyNavigationBarMargin()
llBase.applyNavigationBarPadding()
btnChapterTop.setOnClickListener {
mLayoutManager.scrollToPositionWithOffset(0, 0)
}
@@ -13,15 +13,22 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<LinearLayout
android:id="@+id/ll_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent">
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="8dp"
app:cardBackgroundColor="?attr/colorSurfaceContainer"
app:cardElevation="8dp"
app:strokeWidth="0dp"
app:layout_constraintBottom_toBottomOf="parent">
app:cardElevation="4dp"
app:strokeWidth="0dp">
<LinearLayout
android:id="@+id/ll_chapter_base_info"
@@ -76,5 +83,7 @@
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>