我如何制作静态导航图标?

时间:2014-10-01 05:10:57

标签: android android-navigation

我从这里使用了导航滑块菜单代码 - > Android Sliding Menu using Navigation Drawer 但是,当我点击滑动菜单导航图标时,内部很少并改变位置。我需要的是它是恒定的,不应该在导航列表打开时点击它。

2 个答案:

答案 0 :(得分:3)

ActionBarDrawerToggle是造成这种行为的原因。它在它实现为DrawerLayout.DrawerListener的方法中执行此操作,我们可以覆盖它,而不是调用super方法。

对于ActionBarDrawerToggle库中的support-v4类,我们只需覆盖一个方法:

mDrawerToggle = new ActionBarDrawerToggle(...) {
    ...
    @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {
        // Do not call super.onDrawerSlide(drawerView, slideOffset);
        ...
    }
};

使用appcompat-v7中的类,我们需要覆盖另外两种方法:

mDrawerToggle = new ActionBarDrawerToggle(...) {
    ...
    @Override
    public void onDrawerSlide(View drawerView, float slideOffset){
        // Do not call super.onDrawerSlide(drawerView, slideOffset);
        ...
    }

    @Override
    public void onDrawerClosed(View drawerView) {
        // Do not call super.onDrawerClosed(drawerView);
        ...
    }

    @Override
    public void onDrawerOpened(View drawerView) {
        // Do not call super.onDrawerOpened(drawerView);
        ...
    }
};

答案 1 :(得分:0)

根据您的要求,这是隐藏片段的代码,这里lvf是分配给片段的名称。

lvf = new ListViewFragment();

以下是列表视图示例代码

list2.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);

                if (lvf.isHidden()) {
                    ft.show(lvf);
                    layout.setVisibility(View.VISIBLE);

                } else {
                    ft.hide(lvf);

                    layout.setVisibility(View.GONE);
                }
                ft.commit();



        }
    });