综述

早期的TabHost被废弃,因此使用新的FragmentTabHost代替TabHost

使用TabHost时,在TabActivity中将Activity作为tab加入TabHost即可

使用FragmentTabHost时使用的是FragmentActivity中容纳多个Fragment

FragmentTabHost使用时需要加入v4包,在Eclipse中需要人工导入v4包,AndroidStudio本身自己有v4包,再导入会导致v4包冲突

FragmentTabHost的布局编写:

  1. FrameLayout:真正容纳底部标签的布局。
    1. FragmentTabHost:id使用系统id,tabHost
    2. TabWeight:固定的不知道有什么意思。id使用系统id,tabs
    3. FrameLayout:要求必须按照这种格式写,否则会报错。使用系统id,tabcontent

我们之所以需要在上方加一个FrameLayout的目的是让切换标签放在下方,如果直接使用的下面的结构的话,标签项会出现在界面上方。

FragmentTabhost使用的主界面程序编写,继承FragmentActivity

1、找到FragmentTabHost:通过findViewById(android.R.id.tabhost)
2、初始化FragmentTabHost:通过setup函数,参数传入context,getSupportFragmentManager(),以及自己真正的标签容器。
3、添加Tab三步:
①创建Tab:tabHost.newTabSpec(String tag);该tag可以用来找到Fragment
②设置标签:tabSpec.setIndicator(View v);这里一般使用组合控件,一般情况下标签包括文字以及图片两个部分。
③添加Tab:tabHost.addTab(tabSpec, MyFragment.class, Bundle bundle);第二个参数是对应需要添加的Fragment,bundle是chuanruFragment的参数,不需要时填入null;该参数可以在Fragment中的onCreateView中通过Bundle bundle = this.getArguments()获取。

Fragment的编写

很多情况下我们会是从Activity改为Fragment,在Fragment中主要函数有两个,onCreateView中可以通过填充布局实现界面布局,在onViewCreated中可以通过findViewById找到对应的控件。

getActivity函数可以获取该Fragment对应的FragmentActivity,getActivity.getApplicationContext可以获取上下文。

在startActivityForResult时,返回结果操作只能通过FragmentActivity来处理,有FragmentActivity辨别后返回给对应的Fragment处理。

更多相关文章

  1. Android(安卓)自定义TextView实现宫格布局,Drawable添加图片并控
  2. Android(安卓)SearchView 焦点问题
  3. Android(安卓)应用布局文件的命名规则
  4. Android(安卓)录音实现方法、仿微信语音、麦克风录音、发送语音
  5. android ListView添加事件并获取选中项的值
  6. 01-android快速入门
  7. Xamarin.Android(安卓)自定义VideoView 进度条
  8. android 中findViewById()为null的可能原因
  9. 关于Android布局中键盘遮挡问题

随机推荐

  1. Android(2.Activity初步)
  2. 举例说明android中SmsManager的用法---用
  3. 关于Google Android平台的ClockworkMod R
  4. Java泛型应用之打造Android万能ViewHolde
  5. 关于android中的ANR
  6. Android编译过程总结及android中各种img
  7. Android 如何实现带滚动条的TextView,在更
  8. android 的短信发送
  9. android 调用系统相机或者系统相册功能时
  10. Android Studio xcode单步调试 WebRTC An