0

我有 5 个选项卡。每个选项卡包含多个活动,每个活动包含多个片段。

例如:需要导航在 tab1 - Activity1 - Fragment1_Activity1 - Fragment2_Activity1 - Activity2 - Fragmnet1_Activity2

我使用 ActivityGroup 在选项卡中显示 Activity2。

活动组类:

public class CouponsActivityGroup extends ActivityGroup {
    private Stack<String> stack;

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (stack == null) stack = new Stack<String>();
        //start default activity
        push("FirstStackActivity", new Intent(this, CouponsContianer.class));
      }

      @Override
      public void finishFromChild(Activity child) {
        pop();
      }

      @Override
      public void onBackPressed() {
        pop();
      }


      public void push(String id, Intent intent) {
        Window window = getLocalActivityManager().startActivity(id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        if (window != null) {
          stack.push(id);
          setContentView(window.getDecorView());
        }
      }

      public void pop() {
        if (stack.size() == 1) finish();
        LocalActivityManager manager = getLocalActivityManager();
        manager.destroyActivity(stack.pop(), true);
        if (stack.size() > 0) {
          Intent lastIntent = manager.getActivity(stack.peek()).getIntent();
          Window newWindow = manager.startActivity(stack.peek(), lastIntent);
          setContentView(newWindow.getDecorView());
        }
      }
    }

从 Fragment2_Activity1 使用以下代码调用 Activity2:

Intent intent = new Intent();
intent.setClass(getParent(), RelatedItemListActivity .class);
CouponsActivityGroup activityStack = (CouponsActivityGroup) getParent();
activityStack.push("SecondStackActivity", intent);

我现在面临的问题是

  1. 我想为Activity2设置一个过渡动画

  2. 从 Activity2 按下时 - 需要保持 Activity1(Fragment2_Activity1) 中的最后一个 Fragment 状态。

    如何做到这一点?

4

1 回答 1

0

片段是旧 ActivityGroups 的某种替代品,不应该一起使用。尝试仅使用一项活动和您需要的尽可能多的片段来实现您的应用程序。

回答您的问题:

  1. FragmentManager 帮助您设置动画。请参阅 FragmentTransaction.setCustomAnimations 。
  2. 使用 addToBackStack 方法来支持返回按钮的正确方式。
于 2013-07-03T07:13:39.127 回答