diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e98e48898..557b32439 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -451,7 +451,8 @@
android:foregroundServiceType="dataSync"
android:icon="@drawable/ic_web_service_noti"
android:label="legado Web Service"
- android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
+ android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
+ tools:targetApi="24">
diff --git a/app/src/main/java/io/legado/app/data/entities/Book.kt b/app/src/main/java/io/legado/app/data/entities/Book.kt
index de0f53915..8920e869f 100644
--- a/app/src/main/java/io/legado/app/data/entities/Book.kt
+++ b/app/src/main/java/io/legado/app/data/entities/Book.kt
@@ -396,10 +396,6 @@ data class Book(
}
}
- fun update() {
- appDb.bookDao.update(this)
- }
-
fun delete() {
if (ReadBook.book?.bookUrl == bookUrl) {
ReadBook.book = null
diff --git a/app/src/main/java/io/legado/app/help/book/BookExtensions.kt b/app/src/main/java/io/legado/app/help/book/BookExtensions.kt
index 01ab7d4db..f8d0440c9 100644
--- a/app/src/main/java/io/legado/app/help/book/BookExtensions.kt
+++ b/app/src/main/java/io/legado/app/help/book/BookExtensions.kt
@@ -252,6 +252,10 @@ fun Book.sync(oldBook: Book) {
canUpdate = curBook.canUpdate
}
+fun Book.update() {
+ appDb.bookDao.update(this)
+}
+
fun Book.getBookSource(): BookSource? {
return appDb.bookSourceDao.getBookSource(origin)
}
diff --git a/app/src/main/java/io/legado/app/lib/prefs/fragment/PreferenceFragment.kt b/app/src/main/java/io/legado/app/lib/prefs/fragment/PreferenceFragment.kt
index b18dbdece..e5fef1006 100644
--- a/app/src/main/java/io/legado/app/lib/prefs/fragment/PreferenceFragment.kt
+++ b/app/src/main/java/io/legado/app/lib/prefs/fragment/PreferenceFragment.kt
@@ -1,16 +1,29 @@
package io.legado.app.lib.prefs.fragment
import android.annotation.SuppressLint
+import android.os.Bundle
+import android.view.View
import androidx.fragment.app.DialogFragment
-import androidx.preference.*
+import androidx.preference.EditTextPreference
+import androidx.preference.ListPreference
+import androidx.preference.MultiSelectListPreference
+import androidx.preference.Preference
+import androidx.preference.PreferenceFragmentCompat
import io.legado.app.lib.prefs.EditTextPreferenceDialog
import io.legado.app.lib.prefs.ListPreferenceDialog
import io.legado.app.lib.prefs.MultiSelectListPreferenceDialog
+import io.legado.app.utils.applyNavigationBarPadding
abstract class PreferenceFragment : PreferenceFragmentCompat() {
private val dialogFragmentTag = "androidx.preference.PreferenceFragment.DIALOG"
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ listView.clipToPadding = false
+ listView.applyNavigationBarPadding()
+ }
+
@SuppressLint("RestrictedApi")
override fun onDisplayPreferenceDialog(preference: Preference) {
diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt
index 5ab5d421e..1d6550182 100644
--- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt
+++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt
@@ -6,6 +6,7 @@ import android.graphics.drawable.ColorDrawable
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.core.view.ViewCompat
import com.google.android.material.bottomnavigation.BottomNavigationView
import io.legado.app.databinding.ViewNavigationBadgeBinding
import io.legado.app.help.config.AppConfig
@@ -34,6 +35,8 @@ class ThemeBottomNavigationVIew(context: Context, attrs: AttributeSet) :
isItemHorizontalTranslationEnabled = false
itemBackground = ColorDrawable(Color.TRANSPARENT)
}
+
+ ViewCompat.setOnApplyWindowInsetsListener(this, null)
}
fun addBadgeView(index: Int): BadgeView {
diff --git a/app/src/main/java/io/legado/app/model/AudioPlay.kt b/app/src/main/java/io/legado/app/model/AudioPlay.kt
index 947d31693..636759ca9 100644
--- a/app/src/main/java/io/legado/app/model/AudioPlay.kt
+++ b/app/src/main/java/io/legado/app/model/AudioPlay.kt
@@ -16,6 +16,7 @@ import io.legado.app.help.book.ContentProcessor
import io.legado.app.help.book.getBookSource
import io.legado.app.help.book.readSimulating
import io.legado.app.help.book.simulatedTotalChapterNum
+import io.legado.app.help.book.update
import io.legado.app.help.coroutine.Coroutine
import io.legado.app.model.webBook.WebBook
import io.legado.app.service.AudioPlayService
diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt
index 920469453..07efe28d7 100644
--- a/app/src/main/java/io/legado/app/model/ReadBook.kt
+++ b/app/src/main/java/io/legado/app/model/ReadBook.kt
@@ -16,6 +16,7 @@ import io.legado.app.help.book.isImage
import io.legado.app.help.book.isLocal
import io.legado.app.help.book.readSimulating
import io.legado.app.help.book.simulatedTotalChapterNum
+import io.legado.app.help.book.update
import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.ReadBookConfig
import io.legado.app.help.coroutine.Coroutine
diff --git a/app/src/main/java/io/legado/app/model/remote/RemoteBookWebDav.kt b/app/src/main/java/io/legado/app/model/remote/RemoteBookWebDav.kt
index 74f147b3e..31f8fa48c 100644
--- a/app/src/main/java/io/legado/app/model/remote/RemoteBookWebDav.kt
+++ b/app/src/main/java/io/legado/app/model/remote/RemoteBookWebDav.kt
@@ -6,6 +6,7 @@ import io.legado.app.constant.AppPattern.bookFileRegex
import io.legado.app.constant.BookType
import io.legado.app.data.entities.Book
import io.legado.app.exception.NoStackTraceException
+import io.legado.app.help.book.update
import io.legado.app.help.config.AppConfig
import io.legado.app.lib.webdav.Authorization
import io.legado.app.lib.webdav.WebDav
diff --git a/app/src/main/java/io/legado/app/service/CacheBookService.kt b/app/src/main/java/io/legado/app/service/CacheBookService.kt
index 4916633d8..448b57fd6 100644
--- a/app/src/main/java/io/legado/app/service/CacheBookService.kt
+++ b/app/src/main/java/io/legado/app/service/CacheBookService.kt
@@ -11,6 +11,7 @@ import io.legado.app.constant.EventBus
import io.legado.app.constant.IntentAction
import io.legado.app.constant.NotificationId
import io.legado.app.data.appDb
+import io.legado.app.help.book.update
import io.legado.app.help.config.AppConfig
import io.legado.app.model.CacheBook
import io.legado.app.model.webBook.WebBook
diff --git a/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt b/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt
index 38f36351d..c14d3ba18 100644
--- a/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt
@@ -21,6 +21,7 @@ import io.legado.app.lib.dialogs.alert
import io.legado.app.lib.theme.primaryTextColor
import io.legado.app.ui.book.read.ReadBookActivity
import io.legado.app.ui.book.search.SearchActivity
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.applyTint
import io.legado.app.utils.cnCompare
import io.legado.app.utils.getInt
@@ -105,6 +106,7 @@ class ReadRecordActivity : BaseActivity() {
}
}
binding.recyclerView.adapter = adapter
+ binding.recyclerView.applyNavigationBarPadding()
}
private fun initSearchView() {
diff --git a/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt b/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt
index aa5004c1a..dce48e0e8 100644
--- a/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/book/bookmark/AllBookmarkActivity.kt
@@ -12,6 +12,7 @@ import io.legado.app.data.appDb
import io.legado.app.data.entities.Bookmark
import io.legado.app.databinding.ActivityAllBookmarkBinding
import io.legado.app.ui.file.HandleFileContract
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers.IO
@@ -53,6 +54,7 @@ class AllBookmarkActivity : VMBaseActivity()
private fun initRecyclerView() {
binding.recyclerView.layoutManager = layoutManager
binding.recyclerView.adapter = adapter
+ binding.recyclerView.applyNavigationBarPadding()
}
private fun initBookData() {
diff --git a/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt b/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt
index 62d513944..894521c68 100644
--- a/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/book/explore/ExploreShowActivity.kt
@@ -13,6 +13,7 @@ import io.legado.app.databinding.ViewLoadMoreBinding
import io.legado.app.ui.book.info.BookInfoActivity
import io.legado.app.ui.widget.recycler.LoadMoreView
import io.legado.app.ui.widget.recycler.VerticalDivider
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.startActivity
import io.legado.app.utils.viewbindingdelegate.viewBinding
@@ -43,6 +44,7 @@ class ExploreShowActivity : VMBaseActivity(R.layout.fragment_bookmark
binding.recyclerView.layoutManager = mLayoutManager
binding.recyclerView.addItemDecoration(VerticalDivider(requireContext()))
binding.recyclerView.adapter = adapter
+ binding.recyclerView.applyNavigationBarPadding()
}
override fun upBookmark(searchKey: String?) {
diff --git a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt
index 37f87cbd3..799c3dfc3 100644
--- a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt
+++ b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt
@@ -23,6 +23,7 @@ import io.legado.app.lib.theme.getPrimaryTextColor
import io.legado.app.ui.widget.recycler.UpLinearLayoutManager
import io.legado.app.ui.widget.recycler.VerticalDivider
import io.legado.app.utils.ColorUtils
+import io.legado.app.utils.applyNavigationBarMargin
import io.legado.app.utils.observeEvent
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.CoroutineScope
@@ -74,6 +75,7 @@ class ChapterListFragment : VMBaseFragment(R.layout.fragment_chapt
tvCurrentChapterInfo.setOnClickListener {
mLayoutManager.scrollToPositionWithOffset(durChapterIndex, 0)
}
+ binding.llChapterBaseInfo.applyNavigationBarMargin()
}
@SuppressLint("SetTextI18n")
diff --git a/app/src/main/java/io/legado/app/ui/file/FileManageActivity.kt b/app/src/main/java/io/legado/app/ui/file/FileManageActivity.kt
index 9bf92c918..56301e775 100644
--- a/app/src/main/java/io/legado/app/ui/file/FileManageActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/file/FileManageActivity.kt
@@ -23,6 +23,7 @@ import io.legado.app.lib.theme.primaryTextColor
import io.legado.app.ui.file.utils.FilePickerIcon
import io.legado.app.ui.widget.recycler.VerticalDivider
import io.legado.app.utils.ConvertUtils
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.applyTint
import io.legado.app.utils.openFileUri
import io.legado.app.utils.viewbindingdelegate.viewBinding
@@ -56,6 +57,7 @@ class FileManageActivity : VMBaseActivity(),
override fun onActivityCreated(savedInstanceState: Bundle?) {
upBottomMenu()
- binding.run {
- viewPagerMain.setEdgeEffectColor(primaryColor)
- viewPagerMain.offscreenPageLimit = 3
- viewPagerMain.adapter = adapter
- viewPagerMain.addOnPageChangeListener(PageChangeCallback())
- bottomNavigationView.elevation = elevation
- bottomNavigationView.setOnNavigationItemSelectedListener(this@MainActivity)
- bottomNavigationView.setOnNavigationItemReselectedListener(this@MainActivity)
- if (AppConfig.isEInkMode) {
- bottomNavigationView.setBackgroundResource(R.drawable.bg_eink_border_top)
- }
- }
+ initView()
upHomePage()
viewModel.deleteNotShelfBook()
onBackPressedDispatcher.addCallback(this) {
@@ -198,6 +190,24 @@ class MainActivity : VMBaseActivity(),
}
}
+ private fun initView() = binding.run {
+ viewPagerMain.setEdgeEffectColor(primaryColor)
+ viewPagerMain.offscreenPageLimit = 3
+ viewPagerMain.adapter = adapter
+ viewPagerMain.addOnPageChangeListener(PageChangeCallback())
+ bottomNavigationView.elevation = elevation
+ bottomNavigationView.setOnNavigationItemSelectedListener(this@MainActivity)
+ bottomNavigationView.setOnNavigationItemReselectedListener(this@MainActivity)
+ if (AppConfig.isEInkMode) {
+ bottomNavigationView.setBackgroundResource(R.drawable.bg_eink_border_top)
+ }
+ ViewCompat.setOnApplyWindowInsetsListener(root) { _, windowInsets ->
+ val height = windowInsets.navigationBarHeight
+ bottomNavigationView.bottomPadding = height
+ windowInsets.inset(0, 0, 0, height)
+ }
+ }
+
/**
* 用户隐私与协议
*/
diff --git a/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesFragment.kt b/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesFragment.kt
index ccdd26941..38d7e496c 100644
--- a/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesFragment.kt
+++ b/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesFragment.kt
@@ -21,6 +21,7 @@ import io.legado.app.lib.theme.primaryColor
import io.legado.app.ui.rss.read.ReadRssActivity
import io.legado.app.ui.widget.recycler.LoadMoreView
import io.legado.app.ui.widget.recycler.VerticalDivider
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.setEdgeEffectColor
import io.legado.app.utils.startActivity
import io.legado.app.utils.viewbindingdelegate.viewBinding
@@ -66,6 +67,7 @@ class RssArticlesFragment() : VMBaseFragment(R.layout.frag
private fun initView() = binding.run {
refreshLayout.setColorSchemeColors(accentColor)
recyclerView.setEdgeEffectColor(primaryColor)
+ recyclerView.applyNavigationBarPadding()
loadMoreView.setOnClickListener {
if (!loadMoreView.isLoading) {
scrollToBottom(true)
diff --git a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt
index 3d8e026c0..3b9792dc3 100644
--- a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt
+++ b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt
@@ -15,6 +15,7 @@ import io.legado.app.databinding.FragmentRssArticlesBinding
import io.legado.app.lib.theme.primaryColor
import io.legado.app.ui.rss.read.ReadRssActivity
import io.legado.app.ui.widget.recycler.VerticalDivider
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.setEdgeEffectColor
import io.legado.app.utils.startActivity
import io.legado.app.utils.viewbindingdelegate.viewBinding
@@ -51,6 +52,7 @@ class RssFavoritesFragment() : VMBaseFragment(R.layout.fr
LinearLayoutManager(requireContext())
}
recyclerView.adapter = adapter
+ recyclerView.applyNavigationBarPadding()
}
private fun loadArticles() {
diff --git a/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt
index 1757c0739..b73219fc9 100644
--- a/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt
@@ -12,6 +12,7 @@ import io.legado.app.databinding.ActivitySourceDebugBinding
import io.legado.app.lib.theme.accentColor
import io.legado.app.lib.theme.primaryColor
import io.legado.app.ui.widget.dialog.TextDialog
+import io.legado.app.utils.applyNavigationBarPadding
import io.legado.app.utils.gone
import io.legado.app.utils.setEdgeEffectColor
import io.legado.app.utils.showDialogFragment
@@ -59,6 +60,7 @@ class RssSourceDebugActivity : VMBaseActivity(),
private fun initView() {
binding.recyclerView.adapter = adapter
+ binding.recyclerView.applyNavigationBarPadding()
val itemTouchCallback = ItemTouchCallback(adapter)
itemTouchCallback.isCanDrag = true
ItemTouchHelper(itemTouchCallback).attachToRecyclerView(binding.recyclerView)
diff --git a/app/src/main/java/io/legado/app/utils/ViewExtensions.kt b/app/src/main/java/io/legado/app/utils/ViewExtensions.kt
index 2fec77ab3..2f3d32eaf 100644
--- a/app/src/main/java/io/legado/app/utils/ViewExtensions.kt
+++ b/app/src/main/java/io/legado/app/utils/ViewExtensions.kt
@@ -16,6 +16,7 @@ import android.view.View.GONE
import android.view.View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS
import android.view.View.INVISIBLE
import android.view.View.VISIBLE
+import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager
import android.widget.EdgeEffect
import android.widget.EditText
@@ -32,6 +33,7 @@ import androidx.core.graphics.withTranslation
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.get
+import androidx.core.view.marginBottom
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager.widget.ViewPager
import io.legado.app.help.config.AppConfig
@@ -273,8 +275,17 @@ fun View.applyStatusBarPadding(withInitialPadding: Boolean = false) {
fun View.applyNavigationBarPadding(withInitialPadding: Boolean = false) {
val initialPadding = if (withInitialPadding) bottomPadding else 0
ViewCompat.setOnApplyWindowInsetsListener(this) { _, windowInsets ->
- val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
- bottomPadding = initialPadding + insets.bottom
+ bottomPadding = initialPadding + windowInsets.navigationBarHeight
+ windowInsets
+ }
+}
+
+fun View.applyNavigationBarMargin(withInitialMargin: Boolean = false) {
+ val initialMargin = if (withInitialMargin) marginBottom else 0
+ ViewCompat.setOnApplyWindowInsetsListener(this) { _, windowInsets ->
+ val lp = layoutParams as ViewGroup.MarginLayoutParams
+ lp.bottomMargin = initialMargin + windowInsets.navigationBarHeight
+ layoutParams = lp
windowInsets
}
}
diff --git a/app/src/main/java/io/legado/app/utils/WindowInsetsExtensions.kt b/app/src/main/java/io/legado/app/utils/WindowInsetsExtensions.kt
index 5aa6e6ea8..789610d47 100644
--- a/app/src/main/java/io/legado/app/utils/WindowInsetsExtensions.kt
+++ b/app/src/main/java/io/legado/app/utils/WindowInsetsExtensions.kt
@@ -3,7 +3,7 @@ package io.legado.app.utils
import androidx.core.view.WindowInsetsCompat
val WindowInsetsCompat.navigationBarHeight
- get() = getInsets(WindowInsetsCompat.Type.systemBars()).bottom
+ get() = (getInsets(WindowInsetsCompat.Type.systemBars()).bottom - imeHeight).coerceAtLeast(0)
val WindowInsetsCompat.imeHeight
get() = getInsets(WindowInsetsCompat.Type.ime()).bottom
diff --git a/app/src/main/res/layout/activity_all_bookmark.xml b/app/src/main/res/layout/activity_all_bookmark.xml
index 614f5baf6..e380f3fd3 100644
--- a/app/src/main/res/layout/activity_all_bookmark.xml
+++ b/app/src/main/res/layout/activity_all_bookmark.xml
@@ -1,22 +1,23 @@
+ android:layout_height="match_parent">
+ app:layout_constraintTop_toTopOf="parent"
+ app:title="@string/all_bookmark" />
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/title_bar" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_book_search.xml b/app/src/main/res/layout/activity_book_search.xml
index c4f6bc74c..b3438fc13 100644
--- a/app/src/main/res/layout/activity_book_search.xml
+++ b/app/src/main/res/layout/activity_book_search.xml
@@ -32,6 +32,7 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:clipToPadding="false"
tools:listitem="@layout/item_search" />
@@ -97,9 +98,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
+ android:contentDescription="@string/stop"
android:src="@drawable/ic_stop_black_24dp"
android:visibility="invisible"
- android:contentDescription="@string/stop"
app:fabSize="mini"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" />
diff --git a/app/src/main/res/layout/activity_cache_book.xml b/app/src/main/res/layout/activity_cache_book.xml
index c499af731..0fbb63c97 100644
--- a/app/src/main/res/layout/activity_cache_book.xml
+++ b/app/src/main/res/layout/activity_cache_book.xml
@@ -1,9 +1,9 @@
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_explore_show.xml b/app/src/main/res/layout/activity_explore_show.xml
index 05b3d96df..35ab2667a 100644
--- a/app/src/main/res/layout/activity_explore_show.xml
+++ b/app/src/main/res/layout/activity_explore_show.xml
@@ -1,7 +1,7 @@
@@ -26,6 +26,7 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_search" />
diff --git a/app/src/main/res/layout/activity_file_manage.xml b/app/src/main/res/layout/activity_file_manage.xml
index 0b83f35a2..73e56a2de 100644
--- a/app/src/main/res/layout/activity_file_manage.xml
+++ b/app/src/main/res/layout/activity_file_manage.xml
@@ -9,19 +9,19 @@
android:id="@+id/titleBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:layout_constraintTop_toTopOf="parent"
app:contentInsetRight="24dp"
- app:contentLayout="@layout/view_search" />
+ app:contentLayout="@layout/view_search"
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toTopOf="parent"
+ tools:ignore="RtlHardcoded"
+ tools:text="name" />
+ app:layout_constraintTop_toTopOf="parent" />
@@ -62,6 +62,7 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_rule_sub.xml b/app/src/main/res/layout/activity_rule_sub.xml
index b4704f5eb..bf76be8fa 100644
--- a/app/src/main/res/layout/activity_rule_sub.xml
+++ b/app/src/main/res/layout/activity_rule_sub.xml
@@ -1,9 +1,9 @@
@@ -27,15 +28,15 @@
android:id="@+id/tv_empty_msg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
android:layout_gravity="center"
+ android:layout_margin="16dp"
android:gravity="center"
- android:visibility="gone"
android:text="@string/rule_sub_empty_msg"
- app:layout_constraintTop_toBottomOf="@+id/title_bar"
+ android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/title_bar"
tools:text="TextView" />
diff --git a/app/src/main/res/layout/activity_source_debug.xml b/app/src/main/res/layout/activity_source_debug.xml
index d506b42f4..0df2ee495 100644
--- a/app/src/main/res/layout/activity_source_debug.xml
+++ b/app/src/main/res/layout/activity_source_debug.xml
@@ -20,9 +20,10 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
+ android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
- app:layout_constraintTop_toBottomOf="@+id/title_bar"
- app:layout_constraintBottom_toBottomOf="parent" />
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/title_bar" />
+ android:orientation="vertical"
+ android:padding="16dp">
@@ -102,8 +103,8 @@
android:id="@+id/text_fx_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textColor="@color/secondaryText"
android:text="调试发现>>输入发现URL,如:"
+ android:textColor="@color/secondaryText"
tools:ignore="HardcodedText" />
diff --git a/app/src/main/res/layout/fragment_bookmark.xml b/app/src/main/res/layout/fragment_bookmark.xml
index fab36a60b..87bcdde1c 100644
--- a/app/src/main/res/layout/fragment_bookmark.xml
+++ b/app/src/main/res/layout/fragment_bookmark.xml
@@ -8,6 +8,7 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:clipToPadding="false"
android:overScrollMode="never" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_rss_articles.xml b/app/src/main/res/layout/fragment_rss_articles.xml
index 867cf055e..39ca9bca3 100644
--- a/app/src/main/res/layout/fragment_rss_articles.xml
+++ b/app/src/main/res/layout/fragment_rss_articles.xml
@@ -7,6 +7,7 @@
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
\ No newline at end of file