更改导航抽屉的过渡
Change transition of Navigation drawer
我想打开带淡入淡出过渡的导航抽屉,
我尝试了大部分但没有成功,所以请帮助我将这种过渡效果存档在导航抽屉上。
我有这种代码。
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (drawer.isDrawerOpen(Gravity.LEFT)) {
drawer.closeDrawers();
// TransitionManager.beginDelayedTransition(drawer, fadeOut);
} else {
drawer.openDrawer(Gravity.LEFT);
// TransitionManager.beginDelayedTransition(drawer, fadeIn);
}
}
});
您可以通过创建以下动画来创建淡入/淡出动画xml:
<!-- fade out-->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.1" >
</alpha>
</set>
r
<!--fade in-->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator">
<alpha
android:duration="2000"
android:fromAlpha="0.1"
android:toAlpha="1.0">
</alpha>
</set>
然后重写 DrawerLayout.DrawerListener 的 onDrawerSlide
,以便在抽屉式菜单滑动时将适当的动画添加到 open/close。例如:
mDrawerLayout.addDrawerListener(
new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// Respond when the drawer's position changes
Animation animFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fade_in);
drawerView.startAnimation(animFadeIn);
}
@Override
public void onDrawerOpened(View drawerView) {
// Respond when the drawer is opened
}
@Override
public void onDrawerClosed(View drawerView) {
// Respond when the drawer is closed
}
@Override
public void onDrawerStateChanged(int newState) {
// Respond when the drawer motion state changes
}
}
);
我想打开带淡入淡出过渡的导航抽屉, 我尝试了大部分但没有成功,所以请帮助我将这种过渡效果存档在导航抽屉上。
我有这种代码。
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (drawer.isDrawerOpen(Gravity.LEFT)) {
drawer.closeDrawers();
// TransitionManager.beginDelayedTransition(drawer, fadeOut);
} else {
drawer.openDrawer(Gravity.LEFT);
// TransitionManager.beginDelayedTransition(drawer, fadeIn);
}
}
});
您可以通过创建以下动画来创建淡入/淡出动画xml:
<!-- fade out-->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.1" >
</alpha>
</set>
r
<!--fade in-->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator">
<alpha
android:duration="2000"
android:fromAlpha="0.1"
android:toAlpha="1.0">
</alpha>
</set>
然后重写 DrawerLayout.DrawerListener 的 onDrawerSlide
,以便在抽屉式菜单滑动时将适当的动画添加到 open/close。例如:
mDrawerLayout.addDrawerListener(
new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// Respond when the drawer's position changes
Animation animFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fade_in);
drawerView.startAnimation(animFadeIn);
}
@Override
public void onDrawerOpened(View drawerView) {
// Respond when the drawer is opened
}
@Override
public void onDrawerClosed(View drawerView) {
// Respond when the drawer is closed
}
@Override
public void onDrawerStateChanged(int newState) {
// Respond when the drawer motion state changes
}
}
);