Fragment核心代码:
/**
* 切换Fragment
* <p>
* 切换Fragment
* </p>
*
* @param Class
* <? extends Fragment> c
* @return 无
* @throws 无
*/
public void toggleFragment(Class<? extends Fragment> currentFragment) {
FragmentManager manager = getSupportFragmentManager();
String strCurrentFragmentName = currentFragment.getName();
FragmentTransaction transaction = manager.beginTransaction();
Fragment fragment = manager.findFragmentByTag(strCurrentFragmentName);
if (fragment == null) {
try {
fragment = currentFragment.newInstance();
// 替换时保留Fragment,以便复用
transaction.add(R.id.content_frame, fragment,
strCurrentFragmentName);
} catch (Exception e) {
// ignore
}
}
// 遍历存在的Fragment,隐藏其他Fragment
List<Fragment> fragments = manager.getFragments();
if (fragments != null)
for (Fragment fm : fragments)
if (!fm.equals(fragment))
transaction.hide(fm);
transaction.show(fragment);
transaction.commit();
}
解释:
transaction.add(R.id.content_frame, fragment,
strCurrentFragmentName);
把fragment 填充到“content_frame”
布局文件:
<!-- 内容 开始 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="bottom"
android:background="@drawable/tab_shadow" />
</FrameLayout>
<!-- 内容 结束 -->

转载于:https://www.cnblogs.com/YangBinChina/p/8970696.html

Fragment的使用相关推荐

  1. Fragment之间传递数据的方式

    1.直接调用另一个Fragent对象的方法,两个Fragment之间高度耦合 2.采取接口回调的方式进行数据传递.即在一个fragment中创建一接口以及接口对应的set方法,在另一个fagment中 ...

  2. Android Fragment 调用宿主Activity 里面的方法

    方法 1 : 直接在Fragment 写 MainActivity main = (MainActivity) getActivity();main.xx; // xx 是 MainActivity ...

  3. java.lang.IllegalArgumentException: No view found for id 0x7f07005f (xx) for for fragment xxFragment

    问题的原因的是自己修改id 的时候弄错了修改下id 就好了 我的是用activity 加载fragment 使用的地方如下 ,确定下面的id 是否在布局中 transaction.add(R.id.c ...

  4. overridePendingTransition 方法在Fragment 中使用

    overridePendingTransition  方法在直接卸载Fragment 中无法识别 这个使用可以在前面添加getActivity 即可使用了 getActivity().override ...

  5. Fragment 使用 replace 的方式实现切换 以及切换的时候Fragment 生命周期

    这个主要代码在activity里面 如下 public class ReplaceActivity extends AppCompatActivity implements View.OnClickL ...

  6. Fragment 使用 show 和 hide 的方式实现切换 以及切换的时候Fragment 生命周期

    实现的效果如下图 主要的代码在activity 这里贴出来了 public class ShowActvity extends AppCompatActivity implements View.On ...

  7. ViewPager与Fragment结合使用,以及切换的时候Fragment 的生命周期

    下面要做的效果图下图 首先我们创建一个适配器如下 public class FraPagerAdapter extends FragmentPagerAdapter {private List< ...

  8. Activity 数据传递给Fragment

    下面说的宿主Activity 里面的Fragment 加入现在Fragment 里面 想使用Activity 里面的城市id 方法 1 使用set值 在Fragment 里面写一个set方法 在act ...

  9. Fragment 之间传递数据

    关于Fragment 之间的跳转这里就不再说了 有兴趣的可以看我的这边博客 Fragment 跳转 ,,,点击查看把 Fragment 跳转首先先跳转到宿主的Activity 上 这里以在同一个Act ...

  10. Tablayout 多个界面使用一个fragment 的实例

    这个主要还是adapter 里面 添加list 就行了 这里直接上代码吧 ,我刚写的demo 看的时候看adapter 就行了 布局代码: <?xml version="1.0&quo ...

最新文章

  1. 全局变量和局部变量的区别_值得收藏!8大技巧,带你了解菜鸟和高手的区别!...
  2. html 渐变透明写法,CSS3透明度+渐变
  3. tcp port numbers reused出现原因_python socket(tcp 线程)实现简单聊天室
  4. 提示JS错误:WebForm_PostBackOptions 未定义
  5. 数据类型,运算符和表达式02 - 零基础入门学习C语言03
  6. 【CentOS 7LAMP架构4】,PHP5和PHP7的安装和配置#171219
  7. target-action设计模式--主要为Button的方法重写
  8. sql运算符_SQL运算符
  9. LeetCode:每日一题(2020.4.6)
  10. Web 网页开发的一点心得
  11. Code[VS]1997 守卫者的挑战
  12. 大学BBS年度十大原创淡黄笑话
  13. java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 2 milliseconds, 351400 nanosec
  14. 基于多模型融合的用户画像分析统计方法研究
  15. 南华大学计算机学院团学会成员,【计算机科学与技术学院】计算机学院第九届研究生团学会换届选举会议圆满结束...
  16. sequelize模型关联_Node.js Sequelize 模型(表)之间的关联及关系模型的操作
  17. xshell如何将Windows文件上传到linux
  18. MQTT - 消息队列遥测传输协议
  19. Flutter 转 null safe时报错: The argument type ‘Object‘ can‘t be assigned to the parameter type XXX
  20. 虚拟人在虚拟现实中应用的技术思考与研究

热门文章

  1. 恢复计算机硬盘数据,计算机数据恢复,小编教您如何恢复计算机数据
  2. 背包问题 尽可能大和大于某个值 为什么是一样意思
  3. 百度区块链 xuperchain 如何剪枝 裁剪区块
  4. Linux ubuntu centos Shell命令大全
  5. mysql 5.5.32备份数据库_十六、mysql的备份与恢复(二)--mysqldump
  6. Unity AssetsBundle
  7. 【mysql】扩展-常用函数
  8. Top K 算法详解
  9. 九、Oracle学习笔记:聚合函数
  10. LayaAir Sprite 容器添加子节点