Android中的Fragment——02(Fragment的动态加载)
来源:互联网 发布:伦敦金投资软件 编辑:程序博客网 时间:2024/05/17 22:38
动态加载和静态加载:
----所谓的静态加载,不过是用xml定义的方式,将Fragment加载进内存
---- 而动态加载,不过是通过代码 将一个Fragment加载进内存罢了
----add(..) : 添加一个Fragment(指定要添加的Fragment和要插入的View ), 与此类似的还有 remove(..)移除,replace(..)替换等
---- 而动态加载,不过是通过代码 将一个Fragment加载进内存罢了
----add(..) : 添加一个Fragment(指定要添加的Fragment和要插入的View ), 与此类似的还有 remove(..)移除,replace(..)替换等
动态加载的步骤:
1,准备好Fragment类
2,准备好Fragment对象
3,开启一个处理Fragment的事务
4,执行对Fragment的添加add(..),替换replace(..),remove(..)移除 等操作
5,对事务进行提交
注意:
如果允许用户通过按下BACK键来返回到当前Fragment添加进来前的状态,调用commit()之前,可以加入addToBackStack()方法
addToBackStack(String name) :点击back键后,让手机返回到该Fragment加载进来之前的状态,参数可以是个name,也可以是null
addToBackStack(String name) :点击back键后,让手机返回到该Fragment加载进来之前的状态,参数可以是个name,也可以是null
我的动态加载的Demo:
Fragment类以及Fragment的布局
MyFragment
public class MyFragment extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.layout_fragment, null);return view;}}layout_fragment.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:layout_width="150dp" android:layout_height="150dp" android:background="@android:color/black" android:layout_centerInParent="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是个Fragment" android:textColor="@android:color/white" android:layout_centerInParent="true" android:textSize="20sp" android:id="@+id/tv_fragment"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:text="点击按钮" android:id="@+id/bt_fragment"/> </RelativeLayout> </RelativeLayout>
我的Activity类,以及Activity的布局文件
我的Activity
public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View v) { /* * 如果允许用户通过按下BACK键来返回到之前的一个Fragment状态,调用commit()之前,可以加入addToBackStack()方法 * * addToBackStack(String name) * 让手机返回到该Fragment加载进来之前的状态,参数可以是个name,也可以是null */ //开始进行动态加载 //2,准备好Fragment对象 MyFragment myFragment = new MyFragment(); //3,开启一个处理Fragment的事务 FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction beginTransaction = fragmentManager.beginTransaction(); //4,执行对Fragment的添加add(..),替换replace(..),remove(..)移除 等操作 beginTransaction.add(R.id.container, myFragment); beginTransaction.addToBackStack(null);//让手机返回到该Fragment加载进来之前的状态,参数可以是个name,也可以是null //5,对事务进行提交 beginTransaction.commit(); }}
Activity的布局文件 activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.xulunpeng.dongtaidown.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="动态加载Fragment" android:layout_centerHorizontal="true" android:onClick="onClick"/> <LinearLayout android:layout_width="300dp" android:layout_height="300dp" android:orientation="vertical" android:background="@android:color/holo_green_dark" android:layout_centerInParent="true" android:id="@+id/container"> </LinearLayout> </RelativeLayout>
注意:
---- 如果在 commit() 之前添加了addBackToStack(),那么点击back键时,将会回到当前Fragment 添加进来前的状态
效果图:
点击了动态加载后的效果:
点击了back键后,返回到该Fragment添加进来前的效果:
0 0
- Android中的Fragment——02(Fragment的动态加载)
- Android中的Fragment——01(Fragment的静态加载)
- Android——Fragment(碎片)的动态加载方式....
- Fragment自学 动态加载Fragment 以及如何获取动态加载的fragment中的控件
- Fragment的动态加载
- android Fragment动态加载的使用详解
- android (二) -fragment 的动态加载
- Android中的Fragment ——03(Fragment的生命周期)
- Android UI编程(8)——动态加载Fragment
- Fragment——向Activity中动态加载Fragment
- 初入Fragment(2)——动态加载fragment
- Fragment:碎片的动态加载
- Fragment的动态加载问题
- 动态加载Fragment的坑
- android 静态加载Fragment和动态加载Fragment
- Android-动态加载和静态加载Fragment
- Android viewpager+fragment实现动态加载碎片(fragment重复使用)
- 【Android】 Viewpager+Fragment实现滑动图片的动态加载
- 让开发效率爆表的Guava ---- Maps
- OpenGL — GLFW — 颜色
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- 分布式服务框架 Zookeeper -- 管理分布式环境中的数据
- 看板与组织重组 1
- Android中的Fragment——02(Fragment的动态加载)
- 自己的一些车机app 界面
- java五子棋初实现
- HDU 1865 1sting
- bresenham 算法介绍
- 星空战神游戏策划案
- SPSS——均 值 检 验 (Compare Means)——均值过程
- VS2010 Win7 64位 C++ MFC DataGrid绑定实例
- java五子棋判断输赢算法