2017-02-14 3 views
0

bottomNavigationViewに2つのアイテムがあります: "next"と "previous"、ビューパーでの現在のイメージが最初で、 "previous"オプションが有効にならない場合、そして最後のイメージViewPagerを使用したBottomNavigationView

@Override 
public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      // NavUtils.navigateUpTo(this, new Intent(this, HomeActivity.class)); 
      // startActivity(new Intent(this, HomeActivity.class)); 
      return true; 
     case R.id.action_previous: 
      item.setEnabled(mViewPager.getCurrentItem() > 0); 
      mViewPager.setCurrentItem(mViewPager.getCurrentItem() -1); 
      return true; 
     case R.id.action_next: 
      if(mViewPager.getCurrentItem() == mPagerAdapter.getCount() -1){ 
       item.setTitle(getString(R.string.action_finish)); 
      } 
      mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1); 
      return true; 
    } 
    return false; 
} 

が、セクションでは、onNavigationItemSelected後に行われた場合も、バック最初の画像への最後の「仕上げ」のタイトルからの場合は、まだ

表示されbecuaseそれは間違っている:「次の」オプションは、私はこのような何かをした 「仕上げ」にテキストを変更しました

ご了承ください。

答えて

0

誰かがこの問題に遭遇した場合、これを達成するための方法の1つがここにあります。メニュー項目を有効/無効にし、追加設定でチェック可能にする必要があります。 BottomNavigationに3つのメニュー項目があり、前にアイテム0があるとすると、次はアイテム2です。

 @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     int index = mViewPager.getCurrentItem();   
     switch (item.getItemId()) { 
      case android.R.id.home: 
       // NavUtils.navigateUpTo(this, new Intent(this, HomeActivity.class)); 
       // startActivity(new Intent(this, HomeActivity.class)); 
       return true; 
      case R.id.action_previous: 
       if (0 != index) { 
        mViewPager.setCurrentItem(index - 1, true); 
        if(1 == index) { 
         item.setEnabled(false); 
         item.setCheckable(true); 
         item.setChecked(true); 
        } else { 
         item.setChecked(false); 
         item.setCheckable(false); 
        } 
        mNavigation.getMenu().getItem(2).setEnabled(true); 
       } 
       return true; 
      case R.id.action_next: 
       if (mAdapterViewPager.getCount()-1 > index) { 
        mViewPager.setCurrentItem(index + 1, true); 
        if(mAdapterViewPager.getCount()-2 == index) { 
         item.setTitle(getString(R.string.action_finish));    
         item.setEnabled(false); 
         item.setCheckable(true); 
         item.setChecked(true); 
        } else { 
         item.setChecked(false); 
         item.setCheckable(false); 
        } 
        mNavigation.getMenu().getItem(0).setEnabled(true); 
       } 
       return true; 
      } 
      return false; 
     } 
関連する問題