android 自定义TabActivity的实例方法_安卓软件开发教程-查字典教程网
android 自定义TabActivity的实例方法
android 自定义TabActivity的实例方法
发布时间:2016-12-28 来源:查字典编辑
摘要:一、改变Tab栏的位置。java代码。在TabActivity的oncreate方法中添加setContentView(R.layout.t...

一、改变Tab栏的位置。

java代码。在TabActivity的oncreate方法中添加

setContentView(R.layout.tab_host);

其中 Layout tab_host.xml 是从系统资源文件中抠出来之后略作修改。

系统原来的 tab_host.xml内容如下

复制代码 代码如下:

<?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">

<LinearLayout android:orientation="vertical"

android:layout_width="match_parent" android:layout_height="match_parent">

<TabWidget android:id="@android:id/tabs" android:layout_width="match_parent"

android:layout_height="wrap_content" android:layout_weight="0" />

<FrameLayout android:id="@android:id/tabcontent"

android:layout_width="match_parent" android:layout_height="0dip"

android:layout_weight="1"/>

</LinearLayout>

</TabHost>

要实现TAB栏在页面下方,只需简单修改。

复制代码 代码如下:

<?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="fill_parent" android:layout_height="fill_parent">

<LinearLayout android:orientation="vertical"

android:layout_width="fill_parent" android:layout_height="fill_parent">

<FrameLayout android:id="@android:id/tabcontent"

android:layout_width="fill_parent" android:layout_height="0dip"

android:layout_weight="1"/>

<TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent"

android:layout_height="wrap_content" android:layout_weight="0" />

</LinearLayout>

</TabHost>

这样,就实现了TAB栏在页面下册。需要注意的是,view的id不要修改。

二、自定义TAB的图片。系统自带的tab_indicator.xml内容如下

复制代码 代码如下:

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

<!-- Copyright (C) 2008 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

-->

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/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="@android: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"

/>

</RelativeLayout>

可以看出,默认情况下,图标在文字上方,并且不能占到整个格,无法满足设计需要。因此可以重写该Layout。

编写tab_in.xml

复制代码 代码如下:

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="64dip"

android:orientation="vertical"

>

</RelativeLayout>

View view1 = inflater.inflate(R.layout.tab_in, null);;

View view2 = inflater.inflate(R.layout.tab_in, null);;

View view3 = inflater.inflate(R.layout.tab_in, null);;

view1 .setBackgroundResource(R.drawable.record_upload_button_stateful);

view2 .setBackgroundResource(R.drawable.record_download_button_stateful);

view3 .setBackgroundResource(R.drawable.record_receive_button_stateful);

tabHost.addTab(tabHost

.newTabSpec("view1")

.setIndicator(view1)

);

tabHost.addTab(tabHost

.newTabSpec("view2")

.setIndicator(view2)

);

tabHost.addTab(tabHost

.newTabSpec("view3")

.setIndicator(view3)

);

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新安卓软件开发学习
    热门安卓软件开发学习
    编程开发子分类