Use measured height instead of magic numbers

This commit is contained in:
Zakhar Timoshenko
2021-08-25 21:17:23 +03:00
committed by Koitharu
parent d30c7e6e9c
commit d1fd31701d
7 changed files with 18 additions and 19 deletions

View File

@@ -6,6 +6,7 @@ import androidx.core.graphics.Insets
import androidx.core.view.updateLayoutParams
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.tabs.TabLayoutMediator
import org.koin.androidx.viewmodel.ext.android.viewModel
@@ -19,7 +20,7 @@ import org.koitharu.kotatsu.favourites.ui.categories.CategoriesEditDelegate
import org.koitharu.kotatsu.favourites.ui.categories.FavouritesCategoriesViewModel
import org.koitharu.kotatsu.utils.RecycledViewPoolHolder
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
import org.koitharu.kotatsu.utils.ext.resolveDp
import org.koitharu.kotatsu.utils.ext.measureHeight
import org.koitharu.kotatsu.utils.ext.showPopupMenu
import java.util.*
@@ -67,8 +68,12 @@ class FavouritesContainerFragment : BaseFragment<FragmentFavouritesBinding>(),
}
override fun onWindowInsetsChanged(insets: Insets) {
val headerHeight = requireActivity().findViewById<AppBarLayout>(R.id.appbar).measureHeight()
binding.root.updatePadding(
top = headerHeight - insets.top
)
binding.pager.updatePadding(
top = -(resources.resolveDp(56) + insets.top)
top = -headerHeight
)
binding.tabs.apply {
updatePadding(

View File

@@ -14,6 +14,7 @@ import androidx.drawerlayout.widget.DrawerLayout
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.snackbar.Snackbar
import kotlinx.coroutines.launch
import org.koin.android.ext.android.get
@@ -222,7 +223,7 @@ abstract class MangaListFragment : BaseFragment<FragmentListBinding>(),
}
override fun onWindowInsetsChanged(insets: Insets) {
val headerHeight = insets.top + resources.resolveDp(64)
val headerHeight = requireActivity().findViewById<AppBarLayout>(R.id.appbar).measureHeight()
binding.recyclerViewFilter.updatePadding(
top = headerHeight,
bottom = insets.bottom

View File

@@ -212,7 +212,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(),
rightMargin = insets.right + topMargin
}
binding.container.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = -(resources.resolveDp(66) + insets.top)
topMargin = -(binding.appbar.measureHeight())
}
}

View File

@@ -7,12 +7,14 @@ import android.view.ViewGroup
import androidx.core.graphics.Insets
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.ItemTouchHelper
import com.google.android.material.appbar.AppBarLayout
import org.koin.android.ext.android.get
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BaseFragment
import org.koitharu.kotatsu.databinding.FragmentSearchSuggestionBinding
import org.koitharu.kotatsu.search.ui.suggestion.adapter.SearchSuggestionAdapter
import org.koitharu.kotatsu.utils.ext.resolveDp
import org.koitharu.kotatsu.utils.ext.measureHeight
class SearchSuggestionFragment : BaseFragment<FragmentSearchSuggestionBinding>(),
SearchSuggestionItemCallback.SuggestionItemListener {
@@ -41,7 +43,7 @@ class SearchSuggestionFragment : BaseFragment<FragmentSearchSuggestionBinding>()
override fun onWindowInsetsChanged(insets: Insets) {
binding.root.updatePadding(
top = resources.resolveDp(64) + insets.top,
top = requireActivity().findViewById<AppBarLayout>(R.id.appbar).measureHeight(),
left = insets.left,
right = insets.right,
bottom = insets.bottom,

View File

@@ -5,6 +5,7 @@ import android.view.*
import androidx.appcompat.app.AlertDialog
import androidx.core.graphics.Insets
import androidx.core.view.updatePadding
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.snackbar.Snackbar
import org.koin.android.ext.android.get
import org.koin.androidx.viewmodel.ext.android.viewModel
@@ -12,7 +13,6 @@ import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BaseFragment
import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener
import org.koitharu.kotatsu.base.ui.list.PaginationScrollListener
import org.koitharu.kotatsu.base.ui.list.decor.SpacingItemDecoration
import org.koitharu.kotatsu.core.model.Manga
import org.koitharu.kotatsu.databinding.FragmentFeedBinding
import org.koitharu.kotatsu.details.ui.DetailsActivity
@@ -20,7 +20,7 @@ import org.koitharu.kotatsu.list.ui.model.ListModel
import org.koitharu.kotatsu.tracker.ui.adapter.FeedAdapter
import org.koitharu.kotatsu.tracker.work.TrackWorker
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
import org.koitharu.kotatsu.utils.ext.resolveDp
import org.koitharu.kotatsu.utils.ext.measureHeight
import org.koitharu.kotatsu.utils.progress.Progress
class FeedFragment : BaseFragment<FragmentFeedBinding>(), PaginationScrollListener.Callback,
@@ -99,7 +99,7 @@ class FeedFragment : BaseFragment<FragmentFeedBinding>(), PaginationScrollListen
override fun onWindowInsetsChanged(insets: Insets) {
binding.recyclerView.updatePadding(
top = resources.resolveDp(64) + insets.top,
top = requireActivity().findViewById<AppBarLayout>(R.id.appbar).measureHeight(),
left = insets.left,
right = insets.right,
bottom = insets.bottom

View File

@@ -4,8 +4,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="64dp">
android:orientation="vertical">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Base.AppTheme">
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>