【原创】android——Tabhost 自定义tab+底部实现+intent切换内容

1,实现tabhost自定义格式,再此仅仅显示背景和文字,效果图预览:(底边栏所示)

(图片变形)

2,xml配置

activity_user的XML配置 

 1 <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:id="@+id/tabhost"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:layout_alignParentBottom="true"
 7     tools:context="${relativePackage}.${activityClass}" >
 8
 9     <LinearLayout
10         android:id="@+id/linearLayout1"
11         android:layout_width="fill_parent"
12         android:layout_height="fill_parent"
13         android:orientation="vertical"
14         >
15           <TextView
16             android:id="@+id/user_welcome"
17             android:layout_width="match_parent"
18             android:layout_height="15dp"
19             android:background="#56a692"
20             android:textColor="#fff"
21             android:gravity="bottom"
22             android:textSize="12sp"/>
23
24         <FrameLayout
25             android:id="@android:id/tabcontent"
26             android:layout_width="fill_parent"
27             android:layout_height="0dp"
28             android:layout_weight="4.25" >
29              <!-- 摆设 -->
30         </FrameLayout>
31
32         <TabWidget
33             android:id="@android:id/tabs"
34             android:layout_width="match_parent"
35             android:layout_height="50dp"
36             android:background="#EECFA1" >
37         </TabWidget>
38
39     </LinearLayout>
40
41 </TabHost>

下面的是:lost.xml的配置

 
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="80dp"
 4     android:layout_height="80dp"
 5     android:orientation="vertical">
 6         <TextView android:id="@+id/tab_label2"
 7         android:layout_width="fill_parent"
 8         android:layout_height="wrap_content"
 9         android:gravity="center"
10         android:textColor="#FFF"
11         android:textStyle="bold"
12         android:background="@drawable/tablost"/>
13
14 </LinearLayout>

2,主界面的实现

 1 package com.example.dbtest;
 2
 3 import android.annotation.SuppressLint;
 4 import android.app.Activity;
 5 import android.app.LocalActivityManager;
 6 import android.content.Intent;
 7 import android.os.Bundle;
 8 import android.view.LayoutInflater;
 9 import android.view.View;
10 import android.widget.TabHost;
11 import android.widget.TextView;
12
13
14 @SuppressWarnings("deprecation")
15 @SuppressLint("InflateParams")
16 public class User extends Activity {
17
18     private TextView tv_welcome;
19     private TabHost tab;
20
21     @SuppressLint("InflateParams")
22     @Override
23     protected void onCreate(Bundle savedInstanceState) {
24         super.onCreate(savedInstanceState);
25         setContentView(R.layout.activity_user);
26         tv_welcome=(TextView)findViewById(R.id.user_welcome);
27         //设置title
28         Bundle bundle=this.getIntent().getExtras();
29         String username=bundle.getString("name");
30         tv_welcome.setText("欢迎您!"+username);
31         //添加groupActivity 是实现intent的必要
32         LocalActivityManager groupActivity =new LocalActivityManager(this,false);
33         groupActivity.dispatchCreate(savedInstanceState);
34
35
36
37 View mesTab = (View) LayoutInflater.from(this).inflate(R.layout.lost,null);
38  TextView mes = (TextView) mesTab.findViewById(R.id.tab_label2);
39  mes.setText("发布");
40
41 View lostTab = (View) LayoutInflater.from(this).inflate(R.layout.lost, null);
42 TextView lost = (TextView) lostTab.findViewById(R.id.tab_label2);
43 lost.setText("失物");
44
45 View foundTab = (View) LayoutInflater.from(this).inflate(R.layout.lost, null);
46 TextView found = (TextView) foundTab.findViewById(R.id.tab_label2);
47  found.setText("招领");
48
49 View toolTab = (View) LayoutInflater.from(this).inflate(R.layout.lost, null);
50  TextView tool = (TextView) toolTab.findViewById(R.id.tab_label2);
51 tool.setText("搜索");
52
53  tab=(TabHost)findViewById(R.id.tabhost);
54 //这里引用groupactivity
55 tab.setup(groupActivity);
56
57
58 //下面分别是跳转到不同的activity
59 Intent intent=new Intent(User.this,User_center.class);
60 tab.addTab(tab.newTabSpec("mes").setIndicator(mesTab).setContent(intent));
61
62 Intent intent1=new Intent(User.this,User_lost.class);
63 tab.addTab(tab.newTabSpec("lost").setIndicator(lostTab).setContent(intent1));
64
65  Intent intent2=new Intent(User.this,User_found.class);
66 tab.addTab(tab.newTabSpec("found").setIndicator (foundTab).setContent(intent2));
67
68  Intent intent3=new Intent(User.this,User_tool.class);
69 tab.addTab(tab.newTabSpec("tool").setIndicator(toolTab).setContent(intent3));
70
71
72     }
73
74
75 }

3,文件分析

4,图片自己引用!

【原创】android——Tabhost 自定义tab+底部实现+intent切换内容,布布扣,bubuko.com

时间: 2024-10-21 10:52:56

【原创】android——Tabhost 自定义tab+底部实现+intent切换内容的相关文章

Tab 滑动标签,综合ViewPager+Fragment+自定义Tab+ActionBar内容

1.效果图 第二个菜单TAB1,TAB2,TAB3是参照网上的例子,第一个菜单是在它的基础之上改变而来. 2.菜单 这里的菜单是通过两种方式来实现,一种是通过布局文件,一种是通过自定义组件LinearLayout.自定义只需要传入菜单的名字即可,切换时需要监听事件.下面是一个viewpager+fragment实现,在滑动时改变tab的选中项. 自定义tab底部线是采用TranslateAnimation动画来实现滚动,布局文件采用viewpager的方法onPageScrolled和onPag

Android自定义组合控件--底部多按钮切换

效果图: 现在市场上大多数软件都是类似于上面的结构,底部有几个按钮用于切换到不同的界面.基于OOP思想,我想把下面的一整块布局封装成一个类,也就是我们的自定义组合控件-底部多按钮切换布局,我把它叫做BottomLayout 看上面的布局,几个按钮横向排列,我们先看一下布局 最外面LinearLayout 方向 horizontal,然后5个weight相同的RelativeLayout,每个RelativeLayout里面有一个Button(用了显示选中状态)个ImageView(用来显示红点)

Android:TabHost实现Tab切换

TabHost是整个Tab的容器,包含TabWidget和FrameLayout两个部分,TabWidget是每个Tab的表情,FrameLayout是Tab内容. >>下载 实现方式有两种: 1.继承TabActivity 2.继承Activity类 方法一:继承TabActivity 从TabActivity中用getTabHost()方法获取TabHost,然后设置标签内容 布局: 1.TabHost 必须设置android:id为@android:id/tabhost2.TabWidg

Android应用主界面底部菜单实现

介绍 现在绝大多数主流的应用主界面,都会包含一个底部菜单,就拿腾讯的QQ与微信来说,看起来是这样的  <---我是底部菜单 原理 在很久以前,可以通过TabActivity实现相关功能,自从Fragment出来后,就被抛弃了. 原理也很简单 1.底部菜单通过自定义RadioGroup实现,通过setOnCheckedChangeListener监听切换内容. 2.内容切换,可以使用ViewPager(可以实现直接滑动切换),TabHost,FragmentManager来实现.. PS:类似的,

Android 各种实现Tab效果的实现方式

一.TabActivity + TabWidget + TabHost. 实现TAB类型界面,首先想到的就是这种方式.但是在API level 13之后官方就不建议使用它了.不过还是在这里简单说一下它的使用吧. 使用它的关键就是布局文件了.需要在布局中添加<TabHost>.<TabWidget>.<FrameLayout>这三个控件,id分别是系统提供的:@android:id/tabhost .@android:id/tabs .@android:id/tabcon

从零开始学android&lt;TabHost标签组件.二十九.&gt;

TabHost主要特点是可以在一个窗口中显示多组标签栏的内容,在Android系统之中每个标签栏就称为一个Tab,而包含这多个标签栏的容器就将其称为TabHost,TabHost类的继承结构如下所示: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.TabHost 常用方法如下所示 1 public TabHost(Context

Android -- TabHost、Fragment、状态保存、通信

工程结构                                                                                       TabAFm到TabEFm都是Fragment,并且每个Fragment对应一个布局文件. TabAFm.java                                                                             package com.yydcdut.tabho

Android总结篇系列:Activity Intent Flags及Task相关属性

同上文一样,本文主要引用自网上现有博文,并加上一些自己的理解,在此感谢原作者. 原文地址: http://blog.csdn.net/liuhe688/article/details/6761337 -------------------------------------------------------------------------- 今天我们来讲一下Activity的task相关内容. 上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大

Android中自定义下拉样式Spinner

Android中自定义下拉样式Spinner 本文继续介绍android自定义控件系列,自定义Spinner控件的使用. 实现思路 1.定义下拉控件布局(ListView及子控件布局) 2.自定义SpinerPopWindow类 3.定义填充数据的Adapter 效果图 一.定义控件布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http:/