所有牵扯到自定义布局的layout中尽量用RelativeLayout

在通讯录中如果像小米手机的UI那就是viewpager,在这里,我们做成静态的。通过tabhost来做。

1.布局

a) 直接用TabHost作为布局框架

b) 代码:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"> <RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"> <FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="" /> <TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_weight="0.0"
android:background="@drawable/contact_tabhost" >
</TabWidget> </RelativeLayout> </TabHost>

FrameLayout中就是填充需要的布局

TabWidge是切换的响应式按钮,两者有着关联性的作用

2.设计

a) 像QQ,微信这样的客户端,应该也是tabhost做的吧。简单,明了,不用费太多的事,就能在一个布局框架中,创建出无数个布局。可同,可异

b) 定义一个ContactActivity extends TabActivity

c) 代码:

private void createTab(int img, String text, Intent intent) {
mTabHost.addTab(mTabHost.newTabSpec(text)
.setIndicator(createTabView(img, text)).setContent(intent));
} private View createTabView(int img, String text) {
View view = LayoutInflater.from(this).inflate(
R.layout.contact_tab_indicator, null);
ImageView iv = (ImageView) view.findViewById(R.id.iv_tab);
TextView tv = (TextView) view.findViewById(R.id.tv_tab);
iv.setImageResource(img);
tv.setText(text);
return view;
}

3.功能

a) 需要三个布局来填充

b) 代码:

mTabHost = getTabHost();
Intent intent1 = new Intent(this, ContactListActivity.class);
createTab(R.drawable.contact, "通讯录", intent1); Intent intent2 = new Intent(this, ContactCalllog.class);
createTab(R.drawable.logcall, "通话记录", intent2); Intent intent3 = new Intent(this, ContactMess.class);
createTab(R.drawable.message, "短信", intent3); mTabHost.setCurrentTab();

Android项目--tabhost的更多相关文章

  1. Android底部TabHost API

    今天在项目中遇到了底部TabHost,顺便就写了一个底部TabHost的api继承即可使用非常简单,以下为源代码: 首先是自定义的TabHostActivity,如果要使用该TabHost继承该类即可 ...

  2. (转载) android项目大全,总有你所需的

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 [置顶] android项目大全,总有你所需的 标签: 源 ...

  3. Android——eclipse下运行android项目报错 Conversion to Dalvik format failed with error 1解决

    在eclipse中导入android项目,项目正常没有任何错误,但是运行时候会报错,(clean什么的都没用了.....)如图: 百度大神大多说是jdk的问题,解决: 右键项目-Properties如 ...

  4. eclipse — 导入android项目后识别成java项目的问题及解决

    最近在eclipse导入android项目的时候遇到了奇葩问题,再此记录 遇到的问题就是:将完好的android项目导入到eclipse的时候,原本这是一个很容易的事情,但是导入成功后发现,,,靠ec ...

  5. 用Kotlin创建第一个Android项目(KAD 01)

    原文标题:Create your first Android project using Kotlin (KAD 01) 作者:Antonio Leiva 时间:Nov 21, 2016 原文链接:h ...

  6. Android之什么是Activity和常用的ADB命令以及Android项目结构的认识

    总结一下之前学习Android的一些内容 一:  Android常用的ADB命令(adb android调试桥)      1.adb devices   查看模拟器设备并重新连接. 2.adb ki ...

  7. eclipse将android项目生成apk并且给apk签名

    转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...

  8. Android开发学习——Android项目的目录结构

    Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...

  9. Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

    前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep. -keep class com.hyphenate.** {*;} ...

随机推荐

  1. Android MenuItem 设置文本颜色-TextColor设置

    前面一直在寻找 MenuItem文字颜色设置. 我发现API唯一的背景颜色设置. .. 因此,找到下面的方法.在OverFlow看到. 在onCreateOptionsMenu一下. 使MenuIte ...

  2. hexo 部署至Git遇到的坑

    查找资料的时候发现了next这个博客主题,next!非常的漂亮,顺手查看了hexo的相关部署. Hexo官方介绍 Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲 ...

  3. DFS PKU 1562

    简单地DFS Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12801   Accepted: 6 ...

  4. osx launchpad删除图标

    安装了个parallels desktop之后,OSX中的launchpad中的图标多了不少,但是好多都不是我自己想要的,我们该怎么删除或者改动呢,以下介绍一些方法: ①直接操作Appications ...

  5. ArcEngine下一个TIN生成的轮廓

    太晚了,直接连接的源代码: /// <summary> /// TIN生成等高线 /// </summary> /// <param name="pInterv ...

  6. A hard puzzle 1097

    Problem Description lcy gives a hard puzzle to feng5166,lwg,JGShining and Ignatius: gave a and b,how ...

  7. Activity的LaunchMode情景思考

    此链接:http://blog.csdn.net/xiaodongrush/article/details/28597855 1. 有哪几种类型?分别有什么用? http://developer.an ...

  8. hdu 2191 (多重背包+二进制优化)

    Problem Description 急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品, ...

  9. Sicily 1732 Alice and Bob (二进制最大公约数)

    联系: http://soj.me/1732 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description: Alice is a b ...

  10. Codeforces Round #235 (Div. 2) D. Roman and Numbers(如压力dp)

    Roman and Numbers time limit per test 4 seconds memory limit per test 512 megabytes input standard i ...