Move the tablayout to the top

This commit is contained in:
KingLucius 2023-10-08 21:06:58 +03:00
parent 5a548b227f
commit ff2abfa83d
2 changed files with 29 additions and 33 deletions

View file

@ -7,12 +7,14 @@ import android.content.res.Configuration
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.FOCUS_AFTER_DESCENDANTS
import android.view.ViewGroup.FOCUS_BLOCK_DESCENDANTS
import android.view.animation.AlphaAnimation
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.StringRes
@ -23,6 +25,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.viewpager2.widget.ViewPager2
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import com.lagradost.cloudstream3.APIHolder
import com.lagradost.cloudstream3.APIHolder.allProviders
@ -132,7 +135,6 @@ class LibraryFragment : Fragment() {
binding?.libraryRoot?.findViewById<TextView>(R.id.search_src_text)?.apply {
tag = "tv_no_focus_tag"
nextFocusDownId = R.id.search_result_root
}
binding?.mainSearch?.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
@ -374,7 +376,10 @@ class LibraryFragment : Fragment() {
(viewpager.adapter as? ViewpagerAdapter)?.pages = pages
//fix focus on the viewpager itself
(viewpager.getChildAt(0) as RecyclerView).tag = "tv_no_focus_tag"
(viewpager.getChildAt(0) as RecyclerView).apply {
tag = "tv_no_focus_tag"
//isFocusable = false
}
// Using notifyItemRangeChanged keeps the animations when sorting
viewpager.adapter?.notifyItemRangeChanged(
@ -419,10 +424,8 @@ class LibraryFragment : Fragment() {
) { tab, position ->
tab.text = pages.getOrNull(position)?.title?.asStringNull(context)
tab.view.tag = "tv_no_focus_tag"
tab.view.nextFocusUpId = R.id.search_result_root
/*tab.view.setOnFocusChangeListener { view, b ->
Log.d("King", libraryTabLayout.focusedChild)
}*/
tab.view.nextFocusDownId = R.id.search_result_root
tab.view.setOnClickListener {
val currentItem =
binding?.viewpager?.currentItem ?: return@setOnClickListener
@ -464,7 +467,6 @@ class LibraryFragment : Fragment() {
}
})
}
override fun onConfigurationChanged(newConfig: Configuration) {
(binding?.viewpager?.adapter as? ViewpagerAdapter)?.rebind()
super.onConfigurationChanged(newConfig)

View file

@ -40,7 +40,6 @@
android:contentDescription="@string/change_providers_img_des"
android:nextFocusLeft="@id/nav_rail_view"
android:nextFocusRight="@id/library_sort"
android:nextFocusDown="@id/search_result_root"
android:tag="@string/tv_no_focus_tag"
android:src="@drawable/ic_baseline_extension_24"
app:tint="?attr/textColor" />
@ -55,7 +54,6 @@
android:contentDescription="@string/change_providers_img_des"
android:nextFocusLeft="@id/provider_selector"
android:nextFocusRight="@id/list_selector"
android:nextFocusDown="@id/search_result_root"
android:tag="@string/tv_no_focus_tag"
android:src="@drawable/ic_baseline_sort_24"
app:tint="?attr/textColor" />
@ -71,7 +69,6 @@
android:contentDescription="@string/change_providers_img_des"
android:nextFocusLeft="@id/library_sort"
android:nextFocusRight="@id/main_search"
android:nextFocusDown="@id/search_result_root"
android:tag="@string/tv_no_focus_tag"
android:src="@drawable/ic_baseline_filter_list_24"
app:tint="?attr/textColor" />
@ -82,7 +79,6 @@
android:layout_margin="10dp"
android:background="@drawable/search_background"
android:visibility="visible"
android:nextFocusDown="@id/search_result_root"
app:layout_scrollFlags="scroll|enterAlways">
<androidx.appcompat.widget.SearchView
@ -108,6 +104,25 @@
</androidx.appcompat.widget.SearchView>
</FrameLayout>
</LinearLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/library_tab_layout"
style="@style/Theme.Widget.Tabs"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="top"
android:nextFocusDown="@id/search_result_root"
android:background="?attr/primaryGrayBackground"
android:paddingHorizontal="5dp"
app:layout_scrollFlags="noScroll"
app:tabGravity="center"
app:tabIndicator="@drawable/indicator_background"
app:tabIndicatorColor="?attr/white"
app:tabIndicatorGravity="center"
app:tabIndicatorHeight="30dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="?attr/primaryBlackBackground"
app:tabTextAppearance="@style/TabNoCaps"
app:tabTextColor="?attr/textColor" />
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
@ -121,7 +136,7 @@
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="40dp"
android:focusable="false"
android:focusable="true"
android:tag="@string/tv_no_focus_tag"
tools:listitem="@layout/library_viewpager_page" />
@ -182,25 +197,4 @@
tools:ignore="ContentDescription" />
</FrameLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/library_tab_layout"
style="@style/Theme.Widget.Tabs"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="bottom"
android:nextFocusUp="@id/search_result_root"
android:background="?attr/primaryGrayBackground"
android:nextFocusLeft="@id/nav_rail_view"
android:paddingHorizontal="5dp"
app:layout_scrollFlags="noScroll"
app:tabGravity="center"
app:tabIndicator="@drawable/indicator_background"
app:tabIndicatorColor="?attr/white"
app:tabIndicatorGravity="center"
app:tabIndicatorHeight="30dp"
app:tabMode="scrollable"
app:tabSelectedTextColor="?attr/primaryBlackBackground"
app:tabTextAppearance="@style/TabNoCaps"
app:tabTextColor="?attr/textColor" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>