zoukankan      html  css  js  c++  java
  • android 中FragmentActivity中模拟返回键返回上一个Activity效果

    FragmentTransaction中先加入一个Fragment,这个Fragment就是当前要显示的Fragment,

    当通过事件触发显示第二个Fragment时,在加入第二个Fragment并调用fragmentTransaction.addToBackStack(null);

    在onBackPressed方法中调用mFragmentManager.popBackStack();回到第一个Fragment

    package com.example.fragmentdemo;
    
    import android.app.Activity;
    import android.app.FragmentManager;
    import android.app.FragmentTransaction;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity {
        private FragmentManager mFragmentManager;
        private Fragment1 fragment1;
        private Fragment2 fragment2;
        private Button button1;
        private FragmentTransaction fragmentTransaction;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            //新建两个Fragment
            fragment1 = new Fragment1();
            fragment2 = new Fragment2();
            mFragmentManager = getFragmentManager();
            //Fragment事务
            fragmentTransaction = mFragmentManager.beginTransaction();
            //增加执行的动画效果 动画不能用我们的Tween动画,后面会有代码
            fragmentTransaction.setCustomAnimations(R.anim.animation_view, R.anim.animation_view_exit);
            //加入1个Fragment
            fragmentTransaction.add(R.id.myFrameLayout, fragment1);
            fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            fragmentTransaction.commit();
            button1 = (Button)findViewById(R.id.button1);
            button1.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    fragmentTransaction = mFragmentManager.beginTransaction();
                    //执行动画,显示fragment2
                    fragmentTransaction.setCustomAnimations(R.anim.animation_view, R.anim.animation_view_exit);
                    if (fragment2.isAdded()) {
                        fragmentTransaction.commit();
                    }else{
                        fragmentTransaction.add(R.id.myFrameLayout, fragment2);
                        fragmentTransaction.addToBackStack(null);
                        fragmentTransaction.commit();
                    }
                }
            });
            
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
        @Override
        protected void onResume() {
            
            super.onResume();
        }
    
        @Override
        public void onBackPressed() {
            super.onBackPressed();
            mFragmentManager.popBackStack();
            
        }
        
        
    }
  • 相关阅读:
    使用fiddler对手机APP进行抓包
    接口测试xml格式转换成json
    python datetime笔记
    python time模块详解
    python time相关操作
    2013流行Python项目汇总
    大象的崛起!Hadoop七年发展风雨录
    利用Mahout实现在Hadoop上运行K-Means算法
    20个开源项目托管站点推荐
    有用的国外开源项目网址
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/5463226.html
Copyright © 2011-2022 走看看