fragment 动态加载
/** * 测试使用Fragment(动态使用) 1. * 使用FragmentManager和FragmentTransaction动态使用一个Fragment 2. 方式: * add(viewId, fragment): 将fragment的视图添加为指定视图的子视图(加在原有子视图的后面) * replace(viewId, fragment): 将fragment的视图添加为指定视图的子视图(先remove原有的子视图) * remove(fragment) : 将fragment的视图移除 * */ public class MainActivity extends FragmentActivity { public MainActivity() { Log.e("TAG", "MainActivity().."); } @Override protected void onCreate(Bundle savedInstanceState) { Log.e("TAG", "MainActivity onCreate().."); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建Fragment对象 MyFragment1 fragment1 = new MyFragment1(); // 得到FragmentManager FragmentManager manager = getSupportFragmentManager(); // 得到FragmentTransacation FragmentTransaction transaction = manager.beginTransaction(); // 添加Fragment对象并提交 transaction.add(R.id.ll_main_container, fragment1).commit(); } private MyFragment2 fragment2; public void showFragment2(View v) { // 创建Fragment对象 fragment2 = new MyFragment2(); // 得到FragmentManager FragmentManager manager = getSupportFragmentManager(); // 得到FragmentTransacation FragmentTransaction transaction = manager.beginTransaction(); //将当前操作添加到回退栈, 这样点击back回到上一个状态 transaction.addToBackStack(null); // 替换Fragment对象并提交 transaction.replace(R.id.ll_main_container, fragment2).commit(); } public void deleteFragment2(View v) { // 得到FragmentManager FragmentManager manager = getSupportFragmentManager(); // 得到FragmentTransacation FragmentTransaction transaction = manager.beginTransaction(); // 移除Fragment对象并提交 transaction.remove(fragment2).commit(); } }
public class MyFragment2 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //加载布局得到View对象并返回 //创建一个视图对象, 设置数据并返回 TextView textView = new TextView(getActivity()); textView.setText("fragment22222"); return textView; } }
public class MyFragment1 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.e("TAG", "onCreateView()"); //加载布局得到View对象并返回 //创建一个视图对象, 设置数据并返回 TextView textView = new TextView(getActivity()); textView.setText("fragment11111"); textView.setBackgroundColor(Color.RED); return textView; } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="显示fragment2" android:onClick="showFragment2"/> <Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="移除fragment2" android:onClick="deleteFragment2"/> </LinearLayout> <LinearLayout android:id="@+id/ll_main_container" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> </LinearLayout> </LinearLayout>
fragment 动态加载的更多相关文章
- Android学习——Fragment动态加载
动态加载原理 利用FragmentManager来添加一套Fragment事务,最后通过commit提交该事务来执行对Fragment的相关操作. FragmentManager fragmentma ...
- 通过Activity动态加载Fragment创建主界面构架
在做项目中,需要建立一个主界面框架,尝试过使用ViewPager ,后来又换成了使用Activity动态加载Fragment实现选项卡的效果.总结一下方便以后回顾. 先给出总体效果: 要实现上述效果, ...
- 关于Android中Fragment静态和动态加载的方法
一.静态加载 1.首先创建一个layout布局fragment.xml,里面放要显示和操作的控件 2.创建一个layout布局main1.xml,用来实现页面的跳转(跳转为要实现静态加载的界面) 3. ...
- 分享个刚写好的 android 的 ListView 动态加载类,功能全而代码少。
(转载声明出处:http://www.cnblogs.com/linguanh/) 简介: 该ListView 实现动态加载数据,为了方便用户充分地自定义自己的数据源.点击事件,等核心操作, ...
- Android 插件开发,做成动态加载
为什么需要插件开发: 相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik format fa ...
- APK动态加载框架(DL)解析
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/39937639 (来自singwhatiwanna的csdn博客) 前言 好久 ...
- Android 插件化方案(动态加载)总结
1.作用 大多数Android开发人员开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,因而便有了插件化的概念,将一个 App 划分为多个插件(Apk ...
- android: 动态加载碎片布局的技巧
虽然动态添加碎片的功能很强大,可以解决很多实际开发中的问题,但是它毕竟只是在 一个布局文件中进行一些添加和替换操作.如果程序能够根据设备的分辨率或屏幕大小在运 行时来决定加载哪个布局,那我们可发挥的空 ...
- Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了 ...
随机推荐
- mac搭建安卓开发环境
下载 android studio,利用android studio自带sdk manager下载安卓sdk,在sdk manager中设置相关代理地址,下载完sdk后,在bash_profile中把 ...
- supervisor启动sqlmapapi失败 sqlmapapi: ERROR (file is not executable)
问题:在使用supervisor管理sqlmapapi的时候,启动的时候报错: sqlmapapi: ERROR (file is not executable) 解决办法:sudo supervis ...
- 【AngularJS】【02】AngularJS应用骨架
※文件引自OneDrive,有些人可能看不到
- java编译命令工具javac
Reads Java class and interface definitions and compiles them into bytecode and class files. Synopsis ...
- UNP学习笔记(第十四章 高级I/O函数)
本章讨论我们笼统地归为“高级I/O”的各个函数和技术 套接字超时 有3种方法在涉及套接字的I/O操作上设置超时 1.调用alarm,它在指定超时时期满时产生SIGALRM信号 2.在select中阻塞 ...
- 【Python】从文件中读取数据
从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...
- 身份证号码正则匹配-javascript
function a(a, b) { return a.test(b) } function b(a) { return a = jQuery.trim(a), 0 == a.length } fun ...
- CentOS7.1 KVM虚拟化之经常使用管理虚拟机命令(3)
一.查看虚拟机列表及状态 [root@kvm01 ~]# virsh list --all Id Name State ---------------------------------------- ...
- 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版
若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...
- cnBlogs windows LIves Writes 安装
1. 官网下载安装 http://group.cnblogs.com/topic/8550.html 参照这个网址下载并安装软件,顺利的话,就万事大吉.但是,如果报错的话,比如我出现的报错的代码是 ...