[app] Show fab when switching page (#1434)

This commit is contained in:
LoveSy 2021-11-23 22:49:29 +08:00 committed by GitHub
parent 14b2e5b20d
commit 7b4ece366e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 0 deletions

View File

@ -52,6 +52,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -61,7 +62,9 @@ import androidx.viewpager2.widget.ViewPager2;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.google.android.material.behavior.HideBottomViewOnScrollBehavior;
import com.google.android.material.checkbox.MaterialCheckBox;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
@ -139,6 +142,18 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
}
}
private void showFab() {
var layoutParams = binding.fab.getLayoutParams();
if (layoutParams instanceof CoordinatorLayout.LayoutParams) {
var coordinatorLayoutBehavior =
((CoordinatorLayout.LayoutParams) layoutParams).getBehavior();
if (coordinatorLayoutBehavior instanceof HideBottomViewOnScrollBehavior) {
//noinspection unchecked
((HideBottomViewOnScrollBehavior<FloatingActionButton>) coordinatorLayoutBehavior).slideUp(binding.fab);
}
}
}
private void updateProgress() {
if (binding != null) {
var position = binding.viewPager.getCurrentItem();
@ -162,6 +177,7 @@ public class ModulesFragment extends BaseFragment implements ModuleUtil.ModuleLi
@Override
public void onPageSelected(int position) {
updateProgress();
showFab();
}
});