2

У меня есть девять фрагментов в viewpager. Я хочу показать позицию фрагмента на панели действий, если пользователь работает над пятым фрагментом, тогда я хочу показать 5 в правом углу панели действий. Я использую ниже код, но его показывается только 1, но когда пользователь саботирует и переходит ко второму фрагменту, то его не показывается 2. Как я могу достичь этого, или кто-нибудь может предложить мне другую идею?Как показать позицию фрагмента viewpager на панели действий?

menu_fragment.xml -

<menu 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" 
    tools:context="com.prgguru.example.MainActivity" > 

     <item 
      android:id="@+id/fragmentPos" 
      android:title="" 
      android:orderInCategory="100" 
      app:showAsAction="always|collapseActionView"/> 

</menu> 

Мой addOnPageChangeListener ниже -

pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 


      } 

      @Override 
      public void onPageSelected(int position) { 

       currentPage = position + 1; 


      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 




@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     //inflater.inflate(R.menu.menu_item, menu); 
     getMenuInflater().inflate(R.menu.menu_fragment, menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Take appropriate action for each action item click 

     switch (item.getItemId()) { 

      case R.id.fragmentPos: 
       this.setTitle(currentPage); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

ответ

0

Если вы хотите показать позицию фрагмента ViewPager на панели действий отредактируйте ниже код для моего Бове Ques и вы успешно смогли показать страницу нет.

Место Ниже линии на ваш onPageScrolled -

supportInvalidateOptionsMenu(); 

Ниже onCreateOptionsMenu -

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     //inflater.inflate(R.menu.menu_item, menu); 
     getMenuInflater().inflate(R.menu.menu_fragment, menu); 

     MenuItem item = menu.findItem(R.id.fragmentPos); 
     item.setTitle(String.valueOf(pos)); 

     return super.onCreateOptionsMenu(menu); 
    } 
Смежные вопросы