android 中FragmentActivity中模拟返回键返回上一个Activity效果
2016-05-05 20:12
477 查看
FragmentTransaction中先加入一个Fragment,这个Fragment就是当前要显示的Fragment,
当通过事件触发显示第二个Fragment时,在加入第二个Fragment并调用fragmentTransaction.addToBackStack(null);
在onBackPressed方法中调用mFragmentManager.popBackStack();回到第一个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(); } }
相关文章推荐
- Android如何使用API
- 别人总结的android学习资源汇总
- Android查看手机通讯录(ListView)
- [Android] ContentProvider实例详解
- Android PopupWindow的使用和分析
- 3. Android框架和工具之 xUtils(BitmapUtils)
- Android.mk 文件语法指南
- Android 友盟分享躺过的几个坑,大坑,坑爹
- Android 下的EXIF
- 一个简单的Android聊天室
- Android Intent调用大全、系统自带Intent调用大全
- android设计模式——建造者模式
- Android中线程的正确使用
- Android menu菜单items间隔设置
- Android中用URL模拟一个简单的图片加载器
- android项目中配置NDK自动编译生成so文件
- Android利用Gson库解析复杂结构的JSON数据
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- 初学android开发--Fragment
- [Android5.1]开机动画显示工作流程分析