滑块菜单的三行选项对一个片段不起作用

时间:2014-07-23 07:04:13

标签: android android-fragments

我在我的活动中创建了滑块菜单,其中包含11个选项。当我点击任何选项时,它会切换到相应的片段。我只有一个片段有问题。片段打开很好但是当我点击三行时滑块菜单的选项,菜单没有打开。这个问题不存在于任何其他片段中,因为滑块菜单对其他片段打开正常。我发布了存在问题的片段代码。

PhotosFragment.java

public class PhotosFragment extends Fragment implements ActionBar.TabListener  {
    private FragmentActivity myContext;
    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "IBL Tweets", "Fans Updates", "My Updates" };


        public PhotosFragment(){}
        @Override
        public void onAttach(Activity activity) {
            myContext=(FragmentActivity) activity;
            super.onAttach(activity);
        }


        public void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setHasOptionsMenu(true);
        }
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {

            View rootView = inflater.inflate(R.layout.fragment_photos, container, false);
            viewPager = (ViewPager)rootView.findViewById(R.id.pager);
            actionBar =getActivity().getActionBar();
            mAdapter = new TabsPagerAdapter(myContext.getSupportFragmentManager());

            viewPager.setAdapter(mAdapter);
            actionBar.setHomeButtonEnabled(false);
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

            // Adding Tabs
            for (String tab_name : tabs) {
                actionBar.addTab(actionBar.newTab().setText(tab_name)
                        .setTabListener(this));
            }

            /**
             * on swiping the viewpager make respective tab selected
             * */
            viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

                @Override
                public void onPageSelected(int position) {
                    // on changing the page
                    // make respected tab selected
                    actionBar.setSelectedNavigationItem(position);
                }

                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                }

                @Override
                public void onPageScrollStateChanged(int arg0) {
                }
            });
            return rootView;
        }
        @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            // TODO Auto-generated method stub
            super.onCreateOptionsMenu(menu, inflater);
            inflater.inflate(R.menu.main2, menu);
        }



        @Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub
            viewPager.setCurrentItem(tab.getPosition());
        }



        @Override
        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }



        @Override
        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

    }

main2.xml

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

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>


  <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_new_picture"
          android:title="@string/app_name"
          android:showAsAction="ifRoom"/>


</menu>

fragment_photos.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

问题应该在

actionBar.setHomeButtonEnabled(false);

它使ActionBar图标无法点击,删除它并重试或放入

 actionBar.setHomeButtonEnabled(true);

代替