[app] Fix scroll bar of module fragment from shortcut (#740)

* [app] Fix scroll bar of module fragment from shortcut

* Also for RepoItemFragment
This commit is contained in:
LoveSy 2021-06-11 18:27:47 +08:00 committed by GitHub
parent f64871dd0c
commit ccafa7d29a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 1 deletions

View File

@ -21,6 +21,8 @@ package org.lsposed.manager.ui.fragment;
import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS; import static android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS;
import static androidx.recyclerview.widget.RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
@ -166,6 +168,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
for (var user : users) { for (var user : users) {
var adapter = new ModuleAdapter(user); var adapter = new ModuleAdapter(user);
adapter.setHasStableIds(true); adapter.setHasStableIds(true);
adapter.setStateRestorationPolicy(PREVENT_WHEN_EMPTY);
adapters.add(adapter); adapters.add(adapter);
tabTitles.add(user.name); tabTitles.add(user.name);
} }
@ -179,6 +182,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
} else { } else {
var adapter = new ModuleAdapter(null); var adapter = new ModuleAdapter(null);
adapter.setHasStableIds(true); adapter.setHasStableIds(true);
adapter.setStateRestorationPolicy(PREVENT_WHEN_EMPTY);
adapters.add(adapter); adapters.add(adapter);
binding.viewPager.setUserInputEnabled(false); binding.viewPager.setUserInputEnabled(false);
binding.tabLayout.setVisibility(View.GONE); binding.tabLayout.setVisibility(View.GONE);
@ -336,7 +340,6 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
} }
public static class ModuleListFragment extends Fragment { public static class ModuleListFragment extends Fragment {
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -365,6 +368,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
} }
} }
}); });
binding.recyclerView.onApplyWindowInsets(requireActivity().getWindow().getDecorView().getRootWindowInsets());
RecyclerViewKt.fixEdgeEffect(binding.recyclerView, false, true); RecyclerViewKt.fixEdgeEffect(binding.recyclerView, false, true);
RecyclerViewKt.addFastScroller(binding.recyclerView, binding.recyclerView); RecyclerViewKt.addFastScroller(binding.recyclerView, binding.recyclerView);
return binding.getRoot(); return binding.getRoot();

View File

@ -406,6 +406,7 @@ public class RepoItemFragment extends BaseFragment implements RepoLoader.Listene
holder.recyclerView.setTag(position); holder.recyclerView.setTag(position);
holder.recyclerView.setLayoutManager(new LinearLayoutManagerFix(requireActivity())); holder.recyclerView.setLayoutManager(new LinearLayoutManagerFix(requireActivity()));
holder.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setRaised(!top)); holder.recyclerView.getBorderViewDelegate().setBorderVisibilityChangedListener((top, oldTop, bottom, oldBottom) -> binding.appBar.setRaised(!top));
holder.recyclerView.onApplyWindowInsets(requireActivity().getWindow().getDecorView().getRootWindowInsets());
RecyclerViewKt.fixEdgeEffect(holder.recyclerView, false, true); RecyclerViewKt.fixEdgeEffect(holder.recyclerView, false, true);
RecyclerViewKt.addFastScroller(holder.recyclerView, holder.itemView); RecyclerViewKt.addFastScroller(holder.recyclerView, holder.itemView);
break; break;