Android-不显示Viewpager选项菜单

时间:2018-07-14 18:17:51

标签: android android-viewpager android-optionsmenu

我正在开发一个使用ViewPager显示页面的Android应用。在每个页面中,我都希望有“按钮”在页面之间进行导航(上一个和下一个按钮)。所以我创建了一个OptionsMenu,但是我的OptionsMenu没有出现,我也不知道为什么。这就是我在ScreenSlideActivity中创建OptionsMenu的方式

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.activity_screen_slide, menu);

        menu.findItem(R.id.action_previous).setEnabled(mPager.getCurrentItem() > 0);

        MenuItem item = menu.add(Menu.NONE, R.id.action_next, Menu.NONE,
                (mPager.getCurrentItem() == mPagerAdapter.getCount() - 1)
                        ? R.string.action_finish
                        : R.string.action_next);
        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);


        return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:

                NavUtils.navigateUpTo(this, new Intent(this, LibraryActivity.class));
                return true;

            case R.id.action_previous:

                mPager.setCurrentItem(mPager.getCurrentItem() - 1);
                return true;

            case R.id.action_next:

                mPager.setCurrentItem(mPager.getCurrentItem() + 1);
                return true;
        }

        return super.onOptionsItemSelected(item);
 }

要设置选项菜单,请执行以下操作:

 mPager = (ViewPager) findViewById(R.id.pager);
 mPagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager());
 mPager.setAdapter(mPagerAdapter);
 mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {

            invalidateOptionsMenu();
        }
    });

我的菜单XML(activity_screen_slide.xml)看起来像这样:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">

      <item android:id="@+id/action_previous"
          android:title="@string/action_previous"

          app:showAsAction="ifRoom|withText"
       />
</menu>

0 个答案:

没有答案