diff --git a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java index 53455869..0b7f8498 100644 --- a/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java +++ b/app/src/main/java/org/lsposed/manager/ui/fragment/RepoItemFragment.java @@ -48,6 +48,7 @@ import androidx.viewpager2.widget.ViewPager2; import com.google.android.material.button.MaterialButton; import com.google.android.material.progressindicator.CircularProgressIndicator; import com.google.android.material.snackbar.Snackbar; +import com.google.android.material.tabs.TabLayout; import com.google.android.material.tabs.TabLayoutMediator; import org.lsposed.manager.App; @@ -74,6 +75,7 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; +import java.util.stream.IntStream; import rikka.recyclerview.RecyclerViewKt; import rikka.widget.borderview.BorderNestedScrollView; @@ -125,6 +127,16 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene }); int[] titles = new int[]{R.string.module_readme, R.string.module_releases, R.string.module_information}; new TabLayoutMediator(binding.tabLayout, binding.viewPager, (tab, position) -> tab.setText(titles[position])).attach(); + + binding.tabLayout.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + ViewGroup vg = (ViewGroup) binding.tabLayout.getChildAt(0); + int tabLayoutWidth = IntStream.range(0, binding.tabLayout.getTabCount()).map(i -> vg.getChildAt(i).getWidth()).sum(); + if (tabLayoutWidth <= binding.getRoot().getWidth()) { + binding.tabLayout.setTabMode(TabLayout.MODE_FIXED); + binding.tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); + } + }); + return binding.getRoot(); } diff --git a/app/src/main/res/layout/fragment_pager.xml b/app/src/main/res/layout/fragment_pager.xml index fcda3b2a..4d106c4d 100644 --- a/app/src/main/res/layout/fragment_pager.xml +++ b/app/src/main/res/layout/fragment_pager.xml @@ -22,9 +22,9 @@ android:id="@+id/snackbar" android:layout_width="match_parent" android:layout_height="match_parent" + android:animateLayoutChanges="true" app:consumeSystemWindowsInsets="start|end" app:edgeToEdge="true" - android:animateLayoutChanges="true" app:fitsSystemWindowsInsets="start|end"> + app:titleTextAppearance="@android:style/TextAppearance.Material.Widget.Toolbar.Title" /> + app:tabGravity="center" + app:tabIndicatorAnimationMode="elastic" + app:tabMode="scrollable" /> @@ -69,11 +69,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" - android:src="@drawable/ic_baseline_add_24" android:layout_margin="16dp" - android:visibility="invisible" + android:contentDescription="@string/add_module_to_user" android:outlineAmbientShadowColor="?colorAccent" android:outlineSpotShadowColor="?colorAccent" - app:layout_fitsSystemWindowsInsets="bottom" - android:contentDescription="@string/add_module_to_user" /> + android:src="@drawable/ic_baseline_add_24" + android:visibility="invisible" + app:layout_fitsSystemWindowsInsets="bottom" /> diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3117747f..18af31dc 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -162,6 +162,7 @@ 解决某些地区的 DNS 污染问题 主题颜色 应用中最常见的颜色 + 系统强调色 强制应用在启动器中显示图标 在 Android 10 之后,应用(特别是 Xposed 模块)不被允许隐藏启动器图标。关闭本选项以禁用此功能。 系统 @@ -189,4 +190,5 @@ LSPosed]]> 已复制 ¯\\\\_(ツ)_\/¯\n空空如也 + 安装模块到用户