Fragment小技巧——几乎可以通用的fragment创建方法
来源:互联网 发布:手机屏幕变魔术的软件 编辑:程序博客网 时间:2024/06/06 16:37
我们在使用fragment时,当所需的fragment比较多的时候,创建fragment的代码就会重复,这时我们就可以把它封装起来。
public abstract class SingleFragmentActivity extends FragmentActivity {protected abstract Fragment createFragment(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fragment); FragmentManager manager = getSupportFragmentManager(); Fragment fragment = manager.findFragmentById(R.id.fragmentContainer); if(fragment == null) { fragment = createFragment(); manager.beginTransaction() .add(R.id.fragmentContainer, fragment) .commit(); } }}
我们来分析一下代码:
首先创建了一个抽象类命名为SingleFragmentActivity继承自FragmentActivity(此处也可以为Activity),然后有一个抽象方法createFragment(),用于创建特定的fragment实例,在onCreate()方法体内,首先获得fragmentManager的实例,然后从容器中查找是否有fragment,如果有,则fragment已经创建过了,if体无需执行。如果容器内无fragment,则fragment实例为null,进入if体,创建framgnet,然后开启事务,调用add方法添加fragment到容器内,提交。
有这个类我们怎么创建我们需要的fragment呢?
首先创建一个activity继承自SingleFragmentActivity,由于SingleFragmentActivity中有createFragment()这个抽象方法,所以必须实现这个方法。
public class MainActivity extends SingleFragmentActivity {@Overrideprotected Fragment createFragment() {return new NewsFragment();}}
上面说了,createFragment()是用于创建我们需要的特定的fragment的,因此在此方法体内我们当然去编写创建fragment的逻辑啦!上面的代码我们返回了一个NewsFragment实例。
以上的步骤就创建好了fragment。
0 0
- Fragment小技巧——几乎可以通用的fragment创建方法
- Fragment小技巧
- Android Fragment——创建Fragment
- 关于Fragment的一点小技巧
- Fragment初学6——Fragment的相关方法
- 可以后退的Fragment
- 关于Fragment的学习笔记1——利用布局文件创建固定Fragment
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- 【Andriod】开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- Andriod开发技巧——Fragment的懒加载
- LightOj 1006(矩阵快速幂)
- Windows 7 搭建FTP
- java获取cpu、内存、硬盘信息
- 《如何欣赏书法》读书笔记(V)
- 编辑器
- Fragment小技巧——几乎可以通用的fragment创建方法
- zoj 3497 Mistwald(矩阵快速幂)
- POJ 1753 Flip Game
- [操作系统] 进程与线程
- EcLipse 设置
- ImageNet Classification with Deep Convolutional Neural Networks
- 【专业造轮子】:一位大神的编程之路,让我大吃一惊!
- 打字测试(二)
- BP神经网络的基本原理