关于tabandroid的信息

如何创建tab android

您好,很高兴为您解答:

为企业提供做网站、成都网站设计、网站优化、成都营销网站建设、竞价托管、品牌运营等营销获客服务。创新互联建站拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!

在创建Tab之前,先把Tab的结构搞清楚。它的结构是这样的:

最外层是一个Tabhost,Tabhost里装了些选项卡(TabSpec),每个选项卡有自己的指示符(Indicator,就是顶部可点的那个区块)和内容(Content,下半部分展示内容的区块)。 

现在,要做的事情就很清楚了:

1、创建Tabhost

2、创建TabSpec并给TabSpec赋值

3、把TabSpec添加到Tabhost中

如果我的回答没能帮助您,请继续追问。

安卓手机上如何打出 tab键

在百度输入法里下载一个叫“apple风格点选布局”的皮肤,这个皮肤最上面有一排数字键,数字“8”的下面就是tab符,在数字8下面往下滑就能输入tab符。

android中tab选项卡怎么做

第一步

res/values/strings.xml

[xhtml] view plain copy

?xml version="1.0" encoding="utf-8"?

resources

string name="hello"Hello World, MyTabActivity!/string

string name="app_name"选项卡Demo/string

string name="andy"Andy Rubin--a href="" class='replace_word' title="undefined" target='_blank' style='color:#df3434; font-weight:bold;'Android/a的创造者/string

string name="bill"Bill Joy--Java的创造者/string

string name="torvalds"Linus Torvalds --Linux之父/string

/resources

第二步

res/layout/tab_layout.xml

[xhtml] view plain copy

?xml version="1.0" encoding="utf-8"?

!--

FrameLayout:一个FrameLayout对象好比一块在屏幕上提前预定好的空白区域,

然后可以填充一些元素到里边,比方说一张图片等。

需要注意的是所有元素都被放置在FrameLayout区域的左上的区域,

而且无法为这些元素指定一个确切的位置。如果有多个元素,则后边的会重叠在前一个元素上。

android:gravity用于设置View组件的对齐方式

(另外,android:layout_gravity用于设置Container组件的对齐方式)

center_horizontal 不改变控件大小,对其到容器横向中间位置(也就是在竖直方向的中间)

android:scaleType="fitXY" 把图片不按比例来扩大或者缩小显示

--

FrameLayout xmlns:android=""

android:layout_width="fill_parent"

android:layout_height="fill_parent"

LinearLayout android:id="@+id/linearLayout1"

xmlns:android=""

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center_horizontal"

android:orientation="vertical"

ImageView

android:id="@+id/imageView01"

android:layout_gravity="center"

android:scaleType="fitXY"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/andy"/

TextView

android:id="@+id/testView01"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20dip"

android:text="@string/andy"

/

/LinearLayout

LinearLayout android:id="@+id/linearLayout2"

xmlns:android=""

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center_horizontal"

android:orientation="vertical"

ImageView

android:id="@+id/imageView02"

android:layout_gravity="center"

android:scaleType="fitXY"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/bill"/

TextView

android:id="@+id/testView02"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20dip"

android:text="@string/bill"

/

/LinearLayout

LinearLayout android:id="@+id/linearLayout3"

xmlns:android=""

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="center_horizontal"

android:orientation="vertical"

ImageView

android:id="@+id/imageView03"

android:layout_gravity="center"

android:scaleType="fitXY"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/torvalds"/

TextView

android:id="@+id/testView03"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="20dip"

android:text="@string/torvalds"

/

/LinearLayout

/FrameLayout

第三步

src/com/myandroid/tab/MyTabActivity.java

[java] view plain copy

package com.myandroid.tab;

import android.app.TabActivity;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.widget.TabHost;

public class MyTabActivity extends TabActivity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TabHost tabHost = this.getTabHost();

/*

* LayoutInflater的作用类似于 findViewById(),

* 不同点是LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化

* 注:findViewById()只是找控件之类(如Button和EditView)

*

* LayoutInflater.from(this)获得context实例

* 也就是相当于this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

* LAYOUT_INFLATER_SERVICE 取得xml里定义的view

*-----------------------------------------------------------------------

* getSystemService:

* 根据传入的NAME来取得对应的Object,然后转换成相应的服务对象

* android的后台运行在很多service,

* 它们在系统启动时被SystemServer开启,支持系统的正常工作,

* 比如MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,

* 应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据

*-----------------------------------------------------------------------

*

* inflate是把xml表述的layout转化为View

* tabHost.getTabContentView() 获得Tab标签页的FrameLayout

* true表示将inflate绑定到根布局元素上

*/

LayoutInflater.from(this)

.inflate(R.layout.tab_layout,

tabHost.getTabContentView(), true);

/*

* tabHost.newTabSpec("Tab1") 创建TabHost.TabSpec,

* TabSpec即是选项卡的指示符,对于TabSpec可以设置一个标题或者设置一个标题和图标

* setIndicator 是为选项卡指示符指定一个标签和图标

* setContent 为选项卡的内容指定视图的ID

*/

tabHost.addTab(

tabHost.newTabSpec("Tab1")

.setIndicator("Tab1", getResources().getDrawable(R.drawable.png1)

).setContent(R.id.linearLayout1)

);

tabHost.addTab(

tabHost.newTabSpec("Tab2")

.setIndicator("Tab2", getResources().getDrawable(R.drawable.png2)

).setContent(R.id.linearLayout2)

);

tabHost.addTab(

tabHost.newTabSpec("Tab3")

.setIndicator("Tab3", getResources().getDrawable(R.drawable.png3)

).setContent(R.id.linearLayout3)

);

}

}

第四步

AndroidManifest.xml

[xhtml] view plain copy

?xml version="1.0" encoding="utf-8"?

manifest xmlns:android=""

package="com.myandroid.tab"

android:versionCode="1"

android:versionName="1.0"

application android:icon="@drawable/icon" android:label="@string/app_name"

activity android:name=".MyTabActivity"

android:label="@string/app_name"

intent-filter

action android:name="android.intent.action.MAIN" /

category android:name="android.intent.category.LAUNCHER" /

/intent-filter

/activity

/application

uses-sdk android:minSdkVersion="8" /

/manifest

附上出处链接:

android 如何实现自定义tab?? 如图

实现自定义tab过程如下:

1.制作4个9patch的tab样式,可参考android默认的资源

tab_unselected.9.png tab_selected.9.pngtab_press.9.pngtab_focus.9.png

这4个资源分别代表Tab的4种状态。

2.定义Tab的selector样式(就叫它tab_indicator.xml好了),将其放入drawable文件夹下,代码如下:

xml version="1.0" encoding="utf-8"?  

selector xmlns:android=""  

item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" / 

item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" / 

item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" /  

item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" /   

item android:state_pressed="true" android:drawable="@drawable/tab_press" /  

selector  

3.编写indicator的布局文件(不妨也叫tab_indicator.xml),将其放入layout文件夹下,代码如下:

xml version="1.0" encoding="utf-8"?  

RelativeLayout xmlns:android=""  

android:layout_width="0dip"  

android:layout_height="64dip"  

android:layout_weight="1"  

android:layout_marginLeft="-3dip"  

android:layout_marginRight="-3dip"  

android:orientation="vertical"  

android:background="@drawable/tab_indicator"  

ImageView android:id="@+id/icon"  

android:layout_width="wrap_content"  

android:layout_height="wrap_content"  

android:layout_centerHorizontal="true"  

/  

TextView android:id="@+id/title"  

android:layout_width="wrap_content"  

android:layout_height="wrap_content"  

android:layout_alignParentBottom="true"  

android:layout_centerHorizontal="true"  

style="?android:attr/tabWidgetStyle" mce_style="?android:attr/tabWidgetStyle"  

/  

4.接下来就是在TabActivity中使用我们自己编写的Tab样式了:

// 首先获取TabWidget  

mTabHost = getTabHost();  

LinearLayout ll = (LinearLayout)mTabHost.getChildAt(0);  

TabWidget tw = (TabWidget)ll.getChildAt(0);  

RelativeLayout tabIndicator1 = (RelativeLayout) LayoutInflater.from(this).inflate(R.layout.tab_indicator, tw, false);  

TextView tvTab1 = (TextView)tabIndicator1.getChildAt(1);  

tvTab1.setText("tab1");  

mTabHot = mTabHost.newTabSpec("TAB_1")  

.setIndicator(tabIndicator1)  

.setContent(contentIntent);


网站名称:关于tabandroid的信息
当前URL:http://scyanting.com/article/dscjcsg.html