我有以下代码。如何隐藏向下滚动的底部导航并在用户向上滚动时显示? 我需要的是在用户向下滚动时隐藏的导航,一旦用户开始向上滚动,导航应重新出现。 XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolBar">
<LinearLayout
////////
</LinearLayout>
</ScrollView>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/colorPrimary"
app:itemTextColor="@drawable/selector"
app:itemIconTint="@drawable/selector"
app:menu="@menu/navigation"
android:layout_alignParentBottom="true"
app:labelVisibilityMode="labeled" />
</RelativeLayout>
JAVA
BottomNavigationView bottomNavigationView = findViewById(R.id.navigation);
bottomNavigationView.setSelectedItemId(R.id.navigation_one);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.navigation_one:
return true;
case R.id.navigation_two:
startActivity(new Intent(getApplicationContext() ,Two.class));
overridePendingTransition(0,0);
finish();
return true;
case R.id.navigation_three:
startActivity(new Intent(getApplicationContext() ,Three.class));
overridePendingTransition(0,0);
finish();
return true;
case R.id.navigation_four:
startActivity(new Intent(getApplicationContext() ,Four.class));
overridePendingTransition(0,0);
finish();
return true;
}
return false;
}
});
答案 0 :(得分:0)
如果您不想更改为协调器布局,可以执行以下操作:
setOnScrollChangeListener
用于ScrollView
检测滚动方向(上下)onScrollChange
方法中为bottomNavigationView设置动画,使其上下滑动(基于滚动方向)