Android笔记之FragmentTabHost实现选项卡
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实现选项卡相关推荐
- Android 笔记之 R 文件
Android笔记之R文件 阅读目录 介绍 R 文件的内容 介绍 通过 R 文件引用资源 一.R 文件的内容 在 Android Studio 中 R 文件位于 app -> build -&g ...
- Android开发学习之TabView选项卡具体解释 -- 基于Android4.4
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/he90227/article/details/24474197 直接上代码 -- 基于Android ...
- Android笔记 fragment的生命周期
demo执行顺序 10-22 20:38:10.281: I/System.out(26337): onAttach 附加到Activity 10-22 20:38:10.281: I/Sy ...
- android listview替代,Android笔记——RecyclerView替代ListView
ListView是常用列表控件,但设置Adapter时自定义代码较为复杂,因此Android3.0后,增加RecyclerView替代ListView RecyclerView没有提供OnItemCl ...
- Android笔记:触摸事件的分析与总结----多点触控
其他相关博文: Android笔记:触摸事件的分析与总结----MotionEvent对象 Android笔记:触摸事件的分析与总结----TouchEvent处理机制 An ...
- android 自定义多tab悬浮控件,Android编程实现自定义Tab选项卡功能示例
本文实例讲述了Android编程实现自定义Tab选项卡功能.分享给大家供大家参考,具体如下: import android.app.TabActivity; import android.conten ...
- Android笔记:判断是否为模拟器(实测夜神通过)
因为不确定因素太多,最近公司需要禁止本程序在虚拟机上运行. 我网上找了好多,各种方法什么设备号,拨打电话,蓝牙设备,模拟器的检测往往是防作弊中的重要一关,这里把这两天收集到的代码写在这偏文章里,和大家 ...
- Android笔记【3】---多媒体播放/广播与服务
Android笔记[3]-多媒体播放/广播与服务 1.音乐播放 (1)创建MediaPlayer媒体播放器 存储在应用程序的res资源中的音乐文件,使用create()方法创建MediaPlayer对 ...
- Android 笔记:识别银行卡,获取银行卡卡号
这个demo是用的card.io 提供的SDK,识别准确率比较高 先看一下效果图: 扫描界面: 识别成功界面 开始界面 在这里说一下集成的两种方式, 1.直接把途中的文件解压开复制到工程目录下的lib ...
最新文章
- Android基础--tools:context=.TestActivity作用
- 移动界面设计点滴:工欲善其事,必先利其器[转]
- NOI.AC-random【期望概率,统计】
- 30岁软件测试转产品_SENSORO 产品总监回特入选 2019 年福布斯中国 30 岁以下精英榜...
- MySQL高级篇(事务视图存储过程与函数)
- [Apple开发者帐户帮助]七、注册设备(3)禁用或启用设备
- hun 暑期实训之打牌 cin与scanf的输入
- 剔除字符串中重复的字符
- Educational Codeforces Round 51: F. The Shortest Statement(最短路+LCA)
- 查询检测PhysX 3.2中的场景查询(1)-基础
- 地图画指定区域_善用GIS 妙绘“环卫”一图画卷
- 通过adb命令安装卸载apk
- Python爬虫 糗百段子
- 路飞学城Python-Day13
- 蓝桥杯 历年试题 矩阵翻硬币
- Android-PickerView系列之源码解析篇(二)
- 输入空间、输出空间、特征空间与假设空间
- PostgreSQL 二进制安装
- Word文字怎么复制粘贴
- 李宏毅 线性代数 Introduction
热门文章
- java怎么加定时器,Spring中定时器实现
- 004_FastDFS分布式添加多个tracker
- 如何在html中自动生成条形图,css如何创建3D立体的条形图?
- linux 跑cpu负载工具,CPU负载查看工具
- springboot中java泛型使用
- c语言随机抽奖小程序,小程序抽奖实现
- java oj主机名排序_oj教程--排序算法(Java)
- vbyone接口引脚定义_一文了解A、B、C、D、E 5 种HDMI接口类型!网友:今天总算明白了...
- oracle判断修改,【数据库】Oracle实现判断条件批量修改功能
- vue解决线上跨域的问题_vue前后端分离解决跨域问题