fragment简单使用
来源:互联网 发布:java 1.7.0 64 bit 编辑:程序博客网 时间:2024/06/09 23:49
项目中经常会用到fragment,写了个简单的demo
Activity
public class MainActivity extends FragmentActivity implements OnClickListener { private FrameLayout frame; private LinearLayout layout_car; private LinearLayout layout_home; private ImageButton car; private ImageButton home; private Fragment tab1; private Fragment tab2; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main_activity); initView(); eventView(); seletor(0); } private void initView() { layout_car = (LinearLayout) findViewById(R.id.layout_car); layout_home = (LinearLayout) findViewById(R.id.layout_home); car = (ImageButton) findViewById(R.id.car); home = (ImageButton) findViewById(R.id.home); } private void eventView() { layout_car.setOnClickListener(this); layout_home.setOnClickListener(this); } @Override public void onClick(View v) { resetImg(); switch (v.getId()) { case R.id.layout_car: seletor(0); break; case R.id.layout_home: seletor(1); break; default: break; } } private void seletor(int i) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); hideFragment(transaction); switch (i) { case 0: if (tab1 == null) { tab1 = new CarFragment(); transaction.add(R.id.frame, tab1); }else{ transaction.show(tab1); } car.setImageResource(R.drawable.n_distribution_l); break; case 1: if (tab2 == null) { tab2 = new HomeFragment(); transaction.add(R.id.frame, tab2); }else{ transaction.show(tab2); } home.setImageResource(R.drawable.n_home_l); break; default: break; } transaction.commit(); } private void hideFragment(FragmentTransaction transaction) { if (tab1 !=null) { transaction.hide(tab1); } if (tab2 !=null) { transaction.hide(tab2); } } private void resetImg() { car.setImageResource(R.drawable.n_distribution_h); home.setImageResource(R.drawable.n_home_h); }}
使用FragmentTransaction的show/hide来显示/隐藏fragment,不会销毁fragment实例,fragment跳转切换数据不重新加载
Fragment
public class CarFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.car, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); initView(view); addListener(); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); }}
main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <include layout="@layout/top"/> <FrameLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > </FrameLayout> <include layout="@layout/bottom"/></LinearLayout>
top和bottom分别是顶部标题和底部标签切换fragment控件
阅读全文
1 0
- Fragment的简单使用
- Android Fragment简单使用
- Fragment的简单使用
- Fragment简单使用
- Fragment的简单使用
- Fragment 的简单使用
- 简单的Fragment使用
- Fragment使用简单示例
- fragment简单使用
- fragment简单使用
- Fragment的简单使用
- Fragment的简单使用
- fragment简单使用
- 39 Android fragment 简单使用
- android Fragment的简单使用
- fragment使用的简单示例
- Android fragment的简单使用
- android Fragment 简单的使用
- 建模所使用的工具
- 初入职场---沟通的重要性
- 使用github desktop隐藏文件和文件夹
- codeforces D. Merge Sort 分治
- virsh edit查询虚拟机
- fragment简单使用
- [绍棠_Swift] Swift指纹验证解锁 touch事件
- 八大排序算法之(二)插入排序 希尔排序
- 广州本爱的郑舒匀老师挽救了我的婚姻,谁说她是骗子?!
- Java内部类的总结
- wxWidgets3.03的下载与安装
- 【cocos2d-x 源码解析】帧动画
- WPF 中Command绑定及InvalidateRequerySuggested使用注意点
- IOS设计模式----对象池模式OBJC版