• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > FragmentTabHost的基本用法,fragmenttabhost

FragmentTabHost的基本用法,fragmenttabhost

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了fragmenttabhost用法,fragmenttabhost,fragmenttabhost底部,fragmenttabhost切换,fragmenttabhost视频等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

FragmentTabHost的基本用法,fragmenttabhost


  开通博客以来已经约莫1个月了。几次想提笔写写东西,但总是由于各种各样的原因并没有开始。现在,年假刚结束,项目也还没有开始,但最终促使我写这篇博客的是,看了一篇博友写的新年计划,说是要在新的一年中写50篇博客,我也心血来潮的定下了这样的目标。把年前项目中用到的FragmentTabHost在这里总结一下。

  现在市面上app的主流框架大体分为两种:一种是在主界面点击菜单按钮,之后会滑出侧滑菜单,之后进入到各个模块,还有一种是在主界面的下面放置若干个tab按钮,点击按钮,切换到不同的模块。今天要讲的就是第二种的实现方式之一的FragmentTabHost.

  FragmentTabHost来自于android.support.v4.app这个包下,继承自TabHost,

作为android4.0的控件,最近在做百度地图的poi,发现sample中的v4包中竟然没有FragmentTabHost这个类,汗!

好了,废话还是少说为妙。

下面是主界面的布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.itrui.searchs.MainActivity" >
    

    <android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            >
            <FrameLayout 
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1">
            </FrameLayout>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="1px"
                android:background="#D0D0D0">
            </TextView>
            <TabWidget 
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="#FFFFFF"
                android:layout_gravity="bottom"
                android:padding="10dp"
                ></TabWidget>
        </LinearLayout>
    </android.support.v4.app.FragmentTabHost>

</RelativeLayout>

控件的命名是固定的不能随便更改。控件的id必须是Android提供的标准id, 即"@android:id"


Tab的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     >
    <LinearLayout
        android:id="@+id/layout_ancor" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="2dp"
        android:paddingBottom="15dp"
        android:paddingTop="10dp">
    <ImageView 
        android:id="@+id/img_tab_pic"
        android:layout_width="32dp"
        android:layout_height="32dp"
        />
    </LinearLayout>
   
</RelativeLayout>View Code

此布局文件是一张图片,当然你也可以根据自己的需求来添加其他的控件,比如文字之类的控件

其中之一的Fragment的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <RelativeLayout 
        android:id="@+id/fragment_main_frist_title"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        >
        <TextView 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingTop="10dp"
            android:layout_marginLeft="80dp"
            android:text="poi搜索"/>
        <ImageView 
            android:id="@+id/iv_baidu_dingwei"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:paddingTop="10dp"
            android:paddingRight="5dp"
            android:layout_alignParentRight="true"
            android:src="@drawable/baidumap"/>
    </RelativeLayout>
    <TextView 
        
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="我是主界面的第一个fragment"/>
    

</LinearLayout>

当然你也可以同一个fragment实现复用。

主页面的代码:

public class MainActivity extends FragmentActivity {

    private FragmentTabHost myTabhost;
    //Tab图片
    private int mImages[] = {
            R.drawable.tab_assistant_gray,R.drawable.tab_center_gray,R.drawable.tab_contest_gray,R.drawable.tab_counter_gray
    };
    //标记
private String mFragmentTags[] ={ "第一个","第二个","第三个","第四个" }; //加载的Fragment private Class mFragment[] ={ MainFristFragment.class,MainSecondFragment.class,MainThridFragment.class,MainFristFragment.class }; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initTabHost(); } private void initTabHost() { myTabhost = (FragmentTabHost) findViewById(android.R.id.tabhost); myTabhost.setup(this, getSupportFragmentManager(),android.R.id.tabhost); //去掉分割线 myTabhost.getTabWidget().setDividerDrawable(null); for(int i = 0;i<mImages.length;i++){ //对Tab按钮添加标记和图片 TabSpec tabSpec = myTabhost.newTabSpec(mFragmentTags[i]).setIndicator(getImageView(i)); //添加Fragment myTabhost.addTab(tabSpec,mFragment[i],null); myTabhost.getTabWidget().getChildAt(i).setBackgroundResource(R.color.white); } }
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • FragmentTabHost的基本用法,fragmenttabhost

相关文章

  • 2017-05-26用Android studio进行 OpenCV 开发的第一个项目,androidopencv
  • 2017-05-26Android疑难杂症之Theme,android疑难杂症
  • 2017-05-26LinearLayout嵌套,linearlayout
  • 2017-05-26Android如何使用Https
  • 2017-05-26Android学习笔记(26):Toast提示信息框浅析
  • 2017-05-26Android之文件数据存储,android数据存储
  • 2017-05-26我的第一节Android课,第一节Android课
  • 2017-05-26Loader加载器,loader加载
  • 2017-05-26Android学习笔记-Button(按钮),android-button
  • 2017-05-26App内切换语言,app切换语言

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android简单的ListViewDemo及每个控件的点击事件,listview控件点击事件
    • Android 6.0 开发者对系统权限的使用与练习(Permissions Best Practices)
    • android布局不带参数返回,android布局参数
    • 安卓第十四天笔记-内容提供者(ContentProvider),contentprovider
    • StringBuffer工具类整理(一),stringbuffer工具类
    • 4.3.1 BroadcastReceiver牛刀小试
    • sed 替换、修改链接文件注意问题
    • 有主线程发送message给子线程,主线程发送message
    • Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
    • 仿拉手团购App6--注册界面,仿拉手团购app6--

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有