看到新的指南出来了,并在google photos最新的应用程序中使用.不知道如何使用新的底部导航栏.通过新的支持lib查看,没有发现任何领先优势.

找不到任何官方样品.
如何使用新的底栏?不想做任何自定义.
我正在构建一个我有BottomNavigationView的应用程序.一切正常,直到我进入活动.
导航是这样的:
问题是它有这个默认动画,因此它每次都会推动活动元素高于其余元素.
另一个例子:
所以我的问题是如何摆脱这个默认动画,当我在它们之间切换时,每个项目都是对齐的?
我的代码:
public class MainActivity extends AppCompatActivity {
private BottomNavigationView bottomNavigationView;
private Fragment fragment;
private FragmentManager fragmentManager;
private FragmentTransaction transaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setupBottomBar();
}
private void setupBottomBar() {
bottomNavigationView = (BottomNavigationView)findViewById(R.id.bottomBar);
fragmentManager = getSupportFragmentManager();
fragment = new CardDeckFragment();
transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.activity_main, fragment).commit();
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.action_card_deck:{
Toast.makeText(MainActivity.this, "Card Deck Selected", Toast.LENGTH_SHORT).show();
fragment = new CardDeckFragment();
break;
}
case R.id.action_favorites:{ …Run Code Online (Sandbox Code Playgroud) 我试图将所有图标居中,我已经使用以下代码禁用了移位模式:
/**
* This is done to remove the shift animation introduced by Android on the bottom navigation view
* /sf/answers/2918332301/
*/
@SuppressLint("RestrictedApi")
public static void disableShiftMode(BottomNavigationView view) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
try {
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
shiftingMode.setAccessible(true);
shiftingMode.setBoolean(menuView, false);
shiftingMode.setAccessible(false);
for (int i = 0; i < menuView.getChildCount(); i++) {
BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
//noinspection RestrictedApi
item.setShiftingMode(false);
item.setPadding(0,15,0,0);
// set once again checked value, so view will be updated
//noinspection RestrictedApi
item.setChecked(item.getItemData().isChecked());
} …Run Code Online (Sandbox Code Playgroud)