Fragment碎片处理
2016-04-08 09:56
253 查看
fragment
第一次发,废话就不多说了,直接上代码FragmentActivity
import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends FragmentActivity { private LinearLayout AccessInventory_layout; private LinearLayout Repertory_layout; private LinearLayout Detail_layout; private LinearLayout Statistics_layout; private LinearLayout UserCenter_layout; private TextView AccessInventory_txt; private TextView Repertory_txt; private TextView Detail_txt; private TextView Statistics_txt; private TextView UserCenter_txt; private ArrayList<Fragment> fragments = new ArrayList<Fragment>(); private String fragment_Tag = "accessinventoryFragment"; private int index = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Instantiation(); }
/**实例化fragment*/ AccessInventoryFragment accessinventoryFragment = new AccessInventoryFragment(this); RepertoryFragment repertoryFragment = new RepertoryFragment(); DetailFragment detailFragment = new DetailFragment(); StatisticsFragment statisticsFragment = new StatisticsFragment(); UserCenterFragment usercenterFragment = new UserCenterFragment(); fragments.add(accessinventoryFragment); fragments.add(repertoryFragment); fragments.add(detailFragment); fragments.add(statisticsFragment); fragments.add(usercenterFragment); /** 启动时,先展示热门Fragment */ FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.replace(R.id.main_layout, fragments.get(0), fragment_Tag); transaction.commit();
实例化完成之后,我们在开始着手控制底部的导航栏变化
public class MyClick implements View.OnClickListener{ @Override public void onClick(View v) { int cur = v.getId(); switch (cur){ case R.id.AccessInventory_layout: cur = 0; fragment_Tag = "accessinventoryFragment"; /**在此处添加需要实现事件的逻辑*/ break; case R.id.Repertory_layout: cur = 1; fragment_Tag = "repertoryFragment"; /**在此处添加需要实现事件的逻辑*/ break; case R.id.Detail_layout: cur = 2; fragment_Tag = "detailFragment"; /**在此处添加需要实现事件的逻辑*/ break; case R.id.Statistics_layout: cur = 3; fragment_Tag = "statisticsFragment"; /**在此处添加需要实现事件的逻辑*/ break; case R.id.UserCenter_layout: cur = 4; fragment_Tag = "usercenterFragment"; /**在此处添加需要实现事件的逻辑*/ break; } /** * 判断是否选中的是当前fragment,是则显示,不是则隐藏 */ if (index != cur) { index = cur; if (!fragments.get(cur).isAdded()) { //未被添加过得fragment FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.add(R.id.main_layout, fragments.get(cur), fragment_Tag); transaction.commit(); for (int i = 0; i < fragments.size(); i++) { if (i != cur) { transaction.hide(fragments.get(i)); } else { transaction.show(fragments.get(i)); } } } else { //已被添加过得fragment FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.commit(); for (int i = 0; i < fragments.size(); i++) { if (i != cur) { transaction.hide(fragments.get(i)); } else { transaction.show(fragments.get(i)); } } } } } }
在贴个fragment模块的代码
public class UserCenterFragment extends Fragment { @ViewInject(R.id.Modify_Password)TextView Modify_Password; @ViewInject(R.id.Modify_Passwordtwo)TextView Modify_Passwordtwo; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.usercenter_fragment, container, false); ViewUtils.inject(this,view); //注入view和事件 return view; }
xml模块的代码我就不贴出来了,都比较简单,如果有需要的可以告诉我。
目录
用[TOC]来生成目录:
fragment
FragmentActivity
目录
相关文章推荐
- fasync的总结
- 新的项目-使用手机蜂窝定位,上架被苹果11.12 拒绝
- CoreAnimation图层的树状结构和寄宿图
- Excel的数据导入到PB的DW中
- Web后台开发工具库积累
- android L 启动流程
- 设置Android Studio的工作空间编码
- 字节与字符_字节流与字符流_ASCII与Unicode_GB2312_GBK_GB18030_BIG-5
- Linux设备驱动中的阻塞与非阻塞总结
- win7瘦身,关闭虚拟内存,页面文件,休眠
- C语言中,数组名作为参数传递给函数时,退化为指针
- 一个帖子学会Android开发四大组件
- 4.3、Libgdx启动类和配置
- Sql2008事务日志已满处理
- centos minimal net-conn
- 适配器模式
- Activity生命周期图
- NTFS与FAT32有什么区别
- maven创建java项目和javaWeb项目
- Linux fdisk --列出所有分区,包括没挂载上的