FragmentTabHost

API:http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html

1、main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><FrameLayoutandroid:id="@+id/realtabcontent"android:layout_width="fill_parent"android:layout_height="0dip"android:layout_weight="1" /><!-- tabhost装载5个tab的容器 --><android.support.v4.app.FragmentTabHostandroid:id="@android:id/tabhost"android:layout_width="fill_parent"android:layout_height="wrap_content" ><FrameLayoutandroid:id="@android:id/tabcontent"android:layout_width="0dp"android:layout_height="0dp"android:layout_weight="0" /></android.support.v4.app.FragmentTabHost></LinearLayout>

2、FragmentActivity中使用fragmenttabhost

(1)TabSpec的实例化:TabSpec tabSpec = mTabHost.newTabSpec(String tag).setIndicator(.....);

  • setIndicator(View view);   //Specify a view as the tab indicator.
setIndicator(getTabItemView())
private View getTabItemView(int index){View view = layoutInflater.inflate(R.layout.tab_item_view, null);ImageView imageView = (ImageView) view.findViewById(R.id.imageview);imageView.setImageResource(R.drawable.tab_home_btn);TextView textView = (TextView) view.findViewById(R.id.textview);        textView.setText("首页");return view;}

  • setIndicator(CharSequence label, Drawable icon)  //Specify a label and icon as the tab indicator. label即为选项卡的显示的文本
setIndicator("Android",getResources().getDrawable(R.drawable.icon_home_nor));       

  • setIndicator( CharSequence label)  //Specify a label as the tab indicator.
setIndicator("设置")

主要代码:

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTabHost;/*** This demonstrates how you can implement switching between the tabs of a* TabHost through fragments, using FragmentTabHost.*/
public class MainActivity extends FragmentActivity {private FragmentTabHost mTabHost;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);mTabHost.addTab(mTabHost.newTabSpec("首页").setIndicator("Simple"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("分类").setIndicator("Contacts"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("排行").setIndicator("Custom"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("热门").setIndicator("Throttle"),fragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("设置").setIndicator("Throttle"),fragment_1.class, null);}
}

fragment_X.class的代码
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;public class fragment_1 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View v = inflater.inflate(R.layout.fragment_1, container, false);return v;}
}

3、fragment下使用fragmentabhost

(1)fragment_1本身不需要布局文件

(2)选项卡默认在顶部

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;public class fragment_1 extends Fragment {private FragmentTabHost mTabHost;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {mTabHost = new FragmentTabHost(getActivity());mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.fragment1/59);mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),subfragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),subfragment_1.class, null);mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),subfragment_1.class, null);return mTabHost;}@Overridepublic void onDestroyView() {super.onDestroyView();mTabHost = null;}
}

4、其他函数

mTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);

Done!

转载于:https://www.cnblogs.com/xingyyy/p/3322011.html

Android笔记之FragmentTabHost实现选项卡相关推荐

  1. Android 笔记之 R 文件

    Android笔记之R文件 阅读目录 介绍 R 文件的内容 介绍 通过 R 文件引用资源 一.R 文件的内容 在 Android Studio 中 R 文件位于 app -> build -&g ...

  2. Android开发学习之TabView选项卡具体解释 -- 基于Android4.4

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/he90227/article/details/24474197 直接上代码 -- 基于Android ...

  3. Android笔记 fragment的生命周期

    demo执行顺序 10-22 20:38:10.281: I/System.out(26337): onAttach     附加到Activity  10-22 20:38:10.281: I/Sy ...

  4. android listview替代,Android笔记——RecyclerView替代ListView

    ListView是常用列表控件,但设置Adapter时自定义代码较为复杂,因此Android3.0后,增加RecyclerView替代ListView RecyclerView没有提供OnItemCl ...

  5. Android笔记:触摸事件的分析与总结----多点触控

       其他相关博文:    Android笔记:触摸事件的分析与总结----MotionEvent对象    Android笔记:触摸事件的分析与总结----TouchEvent处理机制     An ...

  6. android 自定义多tab悬浮控件,Android编程实现自定义Tab选项卡功能示例

    本文实例讲述了Android编程实现自定义Tab选项卡功能.分享给大家供大家参考,具体如下: import android.app.TabActivity; import android.conten ...

  7. Android笔记:判断是否为模拟器(实测夜神通过)

    因为不确定因素太多,最近公司需要禁止本程序在虚拟机上运行. 我网上找了好多,各种方法什么设备号,拨打电话,蓝牙设备,模拟器的检测往往是防作弊中的重要一关,这里把这两天收集到的代码写在这偏文章里,和大家 ...

  8. Android笔记【3】---多媒体播放/广播与服务

    Android笔记[3]-多媒体播放/广播与服务 1.音乐播放 (1)创建MediaPlayer媒体播放器 存储在应用程序的res资源中的音乐文件,使用create()方法创建MediaPlayer对 ...

  9. Android 笔记:识别银行卡,获取银行卡卡号

    这个demo是用的card.io 提供的SDK,识别准确率比较高 先看一下效果图: 扫描界面: 识别成功界面 开始界面 在这里说一下集成的两种方式, 1.直接把途中的文件解压开复制到工程目录下的lib ...

最新文章

  1. Android基础--tools:context=.TestActivity作用
  2. 移动界面设计点滴:工欲善其事,必先利其器[转]
  3. NOI.AC-random【期望概率,统计】
  4. 30岁软件测试转产品_SENSORO 产品总监回特入选 2019 年福布斯中国 30 岁以下精英榜...
  5. MySQL高级篇(事务视图存储过程与函数)
  6. [Apple开发者帐户帮助]七、注册设备(3)禁用或启用设备
  7. hun 暑期实训之打牌 cin与scanf的输入
  8. 剔除字符串中重复的字符
  9. Educational Codeforces Round 51: F. The Shortest Statement(最短路+LCA)
  10. 查询检测PhysX 3.2中的场景查询(1)-基础
  11. 地图画指定区域_善用GIS 妙绘“环卫”一图画卷
  12. 通过adb命令安装卸载apk
  13. Python爬虫 糗百段子
  14. 路飞学城Python-Day13
  15. 蓝桥杯 历年试题 矩阵翻硬币
  16. Android-PickerView系列之源码解析篇(二)
  17. 输入空间、输出空间、特征空间与假设空间
  18. PostgreSQL 二进制安装
  19. Word文字怎么复制粘贴
  20. 李宏毅 线性代数 Introduction

热门文章

  1. java怎么加定时器,Spring中定时器实现
  2. 004_FastDFS分布式添加多个tracker
  3. 如何在html中自动生成条形图,css如何创建3D立体的条形图?
  4. linux 跑cpu负载工具,CPU负载查看工具
  5. springboot中java泛型使用
  6. c语言随机抽奖小程序,小程序抽奖实现
  7. java oj主机名排序_oj教程--排序算法(Java)
  8. vbyone接口引脚定义_一文了解A、B、C、D、E 5 种HDMI接口类型!网友:今天总算明白了...
  9. oracle判断修改,【数据库】Oracle实现判断条件批量修改功能
  10. vue解决线上跨域的问题_vue前后端分离解决跨域问题