相关疑难解决方法(0)

将抽屉图标动画到setDisplayHomeAsUpEnabled上的箭头?

我正在使用setDisplayHomeAsUpEnabled来显示箭头而不是抽屉"汉堡"图标,但它没有动画或任何东西.相反,它立即显示箭头可绘制.

主屏幕:( 专辑1)

点按电影时:( 专辑2)

问题是,当我滑动抽屉时,图标会使动画很好,这让我想到也许我不应该使用setDisplayHomeAsUpEnabled :( 专辑3)

专辑: http ://imgur.com/a/LkXbh

这是我的抽屉切换代码:

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
    setSupportActionBar(toolbar);

    drawerAdapter = new DrawerAdapter(this, App.getNavItems(), getSupportFragmentManager());
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawerList = (ExpandableListView) findViewById(R.id.left_drawer);

    // Set onGroupClick and onChildClick
    drawerAdapter.setClickEvents(MainActivity.this, drawerLayout, drawerList);
    drawerList.setAdapter(drawerAdapter);

    ActionBarDrawerToggle toolbarDrawerToggle = new ActionBarDrawerToggle(
            this,                 
            drawerLayout,        
            toolbar,             
            R.string.drawer_open, 
            R.string.drawer_close 
    ) {

        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            invalidateOptionsMenu();
        }

        public void onDrawerOpened(View view) {
            super.onDrawerOpened(view);
            invalidateOptionsMenu();
        }
    };
    drawerLayout.setDrawerListener(toolbarDrawerToggle);
    toolbarDrawerToggle.syncState();
Run Code Online (Sandbox Code Playgroud)

编辑:我想要的动画不是在打开抽屉时,已经有效了.我想在加载特定片段时手动触发动画.我可能没有正确解释自己.

animation android toggle drawer

19
推荐指数
2
解决办法
2万
查看次数

Android棒棒糖工具栏在打开/关闭抽屉和后退按钮之间切换

我有标准导航抽屉,但现在我正在尝试使用工具栏修改它.

之前我的代码看起来像: MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Log.v("MAIN", "CREATE");
    initViews();
    setListeners();

    getFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            shouldDisplayHomeUp();
        }
    });

    mNavigationDrawerFragment = (NavigationDrawerFragment)
            getFragmentManager().findFragmentById(R.id.navigation_drawer);
    mTitle = getTitle();

    // Set up the drawer.
    mNavigationDrawerFragment.setUp(
            R.id.navigation_drawer,
            (DrawerLayout) findViewById(R.id.drawer_layout));
}
Run Code Online (Sandbox Code Playgroud)

NavigationDrawerFragment.java

public void setUp(int fragmentId, DrawerLayout drawerLayout) {
    mFragmentContainerView = getActivity().findViewById(fragmentId);
    mDrawerLayout = drawerLayout;

    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);

    ((MainActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ((MainActivity) getActivity()).getSupportActionBar().setHomeButtonEnabled(true);

    mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout,
            ((MainActivity) getActivity()).getToolbar(),
            R.string.navigation_drawer_open,
            R.string.navigation_drawer_close) {
        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView); …
Run Code Online (Sandbox Code Playgroud)

navigation android android-appcompat navigation-drawer android-toolbar

9
推荐指数
1
解决办法
2万
查看次数