我使用片段作为滑块菜单并在其中包含列表视图。 该片段具有幻灯片放入和缩小动画。 单击列表视图中的项目我打开一个活动。我面临的问题是我开始活动的时候。片段中的滑块在中途向前滑动,并在活动结束时半滑块完成其弹出窗口操作并关闭。因此产生毛刺效果。
我希望滑块在单击列表视图中的项目时滑入,然后活动开始,这样当活动关闭时,滑块就已经完成了popupstack的事务。
有什么方法我可以知道交易何时完成,然后我开始新的活动。
从我的主片段开始Slider片段。
getSupportFragmentManager()
.beginTransaction()
.setCustomAnimations(R.anim.enter_from_left, 0, 0,
R.anim.exit_to_left)
.add(R.id.parent, new SliderMenuFragment())
.addToBackStack("animation").commit();
Listview项目的滑块片段onclick事件
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
if (((TextView) view).getText().equals("Home")) {
getFragmentManager().popBackStackImmediate(null,
FragmentManager.POP_BACK_STACK_INCLUSIVE);
Intent homePage = new Intent(getActivity(),
MyActivity.class);
getActivity().startActivity(homePage);
}
MyActivity
调用finish()方法。
答案 0 :(得分:0)
我想可以通过覆盖onCreateAnimator并添加动画侦听器来完成,以便您可以从onAnimationEnd开始新的活动
public class MyFragment extends Fragment
{
@Override
public Animator onCreateAnimator(int transit, boolean enter, int nextAnim)
{
final int animatorId = ... // get proper animation id
final Animator anim = AnimatorInflater.loadAnimator(getActivity(), animatorId);
anim.addListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationStart(Animator animation)
{
...
}
@Override
public void onAnimationEnd(Animator animation)
{
...
}
});
return anim;
}