从片段调用syncState

时间:2014-02-24 10:58:12

标签: android android-fragments navigation-drawer

我正在尝试将导航抽屉添加到我的FragmentList中。 我用框架容器设置自定义布局,一切都很好,但应用程序图标附近没有抽屉切换图标。 我认为问题是我不会在我的片段中覆盖onPostCreate,因为,在一个简单的,我没有片段。但在PostCreate中,我需要调用toggle.SyncState。 我怎么能解决我的问题?

在我的切换实施之下:

mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, R.drawable.ic_drawer,
            R.string.app_name, // nav drawer open - description for
            // accessibility
            R.string.hello_world // nav drawer close - description for
    // accessibility
    ) {
        public void onDrawerClosed(View view) {
            getActivity().getActionBar().setTitle("Assigned");
            // calling onPrepareOptionsMenu() to show action bar icons
            getActivity().invalidateOptionsMenu();
        }

        public void onDrawerOpened(View drawerView) {
            getActivity().getActionBar().setTitle("Main");
            // calling onPrepareOptionsMenu() to hide action bar icons
            getActivity().invalidateOptionsMenu();
        }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
    getActivity().getActionBar().setHomeButtonEnabled(true);
    getActivity().getActionBar().setDisplayShowHomeEnabled(true);
    getActivity().getActionBar().setDisplayUseLogoEnabled(true);
    getActivity().getActionBar().setDisplayShowTitleEnabled(true);
    getActivity().getActionBar().setDisplayShowCustomEnabled(false);

1 个答案:

答案 0 :(得分:1)

只需在onActivityCreated方法中调用即可。此方法在onPostCreate之前和活动中的onCreate方法之后的片段中调用。

  

onActivityCreated(Bundle)告诉片段它的活动有   完成了自己的Activity.onCreate()。

public class DrawerFragment extends Fragment {

    private ActionBarDrawerToggle drawerToggle;
    ...

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        drawerToggle.syncState();
    }
}