底部菜单栏
来源:互联网 发布:软件与云计算 编辑:程序博客网 时间:2024/04/28 23:37
先贴图看效果
Activity代码:复制代码一些注意点:
1.没有使用TabActivity,这是在3.0中不建议使用的。
2.setContent()函数除了直接添加视图ID,还可以添加intent直接在Tab的内容部分打开一个activity。如需要了解详细实现过程可自行搜索,也可以发邮件至我的邮箱jayzhou215@163.com
3.重载onTabChanged(String tabId) 函数的目的是实现按下面按钮时变蓝的效果,具体请查看源码
4.之所以菜单栏会在底部显示是在TabHost和TabWidget之间加了一层RelativeLayout,将TabWidget设置为alignParentBottom即可。
main.xml源码:
Activity代码:
- package com.jay.test;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.ImageButton;
- import android.widget.TabHost;
- import android.widget.TabHost.OnTabChangeListener;
- import android.widget.TabHost.TabSpec;
- public class BottmoMenuBarActivity extends Activity {
- private TabHost tabs;
- private ImageButton footer_tab_btn1;
- private ImageButton footer_tab_btn2;
- private ImageButton footer_tab_btn3;
- private ImageButton footer_tab_btn4;
- private ImageButton footer_tab_btn5;
- private ImageButton footer_tab_btn6;
- private ImageButton footer_tab_btn7;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- tabs = null;
- tabs = (TabHost)findViewById(R.id.tabhost);
- tabs.setup();
- tabs.setOnTabChangedListener(TabChangeListener);
- //设置Tab1
- footer_tab_btn1 = new ImageButton(this);
- footer_tab_btn1.setBackgroundResource(R.drawable.bottom_home_button);
- TabSpec tab1 = tabs.newTabSpec("home");
- tab1.setIndicator(footer_tab_btn1); // 设置tab1的名称
- tab1.setContent(R.id.text1); // 关联控件
- tabs.addTab(tab1); // 添加tab1
-
-
- //设置Tab2
- footer_tab_btn2 = new ImageButton(this);
- footer_tab_btn2.setBackgroundResource(R.drawable.bottom_book_button);
- TabSpec tab2 = tabs.newTabSpec("book");
- tab2.setIndicator(footer_tab_btn2);
- tab2.setContent(R.id.text2);
- tabs.addTab(tab2);
-
- //设置Tab3
- footer_tab_btn3 = new ImageButton(this);
- footer_tab_btn3.setBackgroundResource(R.drawable.bottom_video_button);
- TabSpec tab3 = tabs.newTabSpec("video");
- tab3.setIndicator(footer_tab_btn3);
- tab3.setContent(R.id.text3);
- tabs.addTab(tab3);
- //设置Tab4
- footer_tab_btn4 = new ImageButton(this);
- footer_tab_btn4.setBackgroundResource(R.drawable.bottom_magazine_button);
- TabSpec tab4 = tabs.newTabSpec("magazine");
- tab4.setIndicator(footer_tab_btn4);
- tab4.setContent(R.id.text4);
- tabs.addTab(tab4);
-
- // 设置Tab5
- footer_tab_btn5 = new ImageButton(this);
- footer_tab_btn5.setBackgroundResource(R.drawable.bottom_paper_button);
- TabSpec tab5 = tabs.newTabSpec("paper");
- tab5.setIndicator(footer_tab_btn5);
- tab5.setContent(R.id.text5);
- tabs.addTab(tab5);
-
- // 设置Tab6
- footer_tab_btn6 = new ImageButton(this);
- footer_tab_btn6.setBackgroundResource(R.drawable.bottom_thesis_button);
- TabSpec tab6 = tabs.newTabSpec("thesis");
- tab6.setIndicator(footer_tab_btn6);
- tab6.setContent(R.id.text6);
- tabs.addTab(tab6);
-
- // 设置Tab7
- footer_tab_btn7 = new ImageButton(this);
- footer_tab_btn7.setBackgroundResource(R.drawable.bottom_library_button);
- TabSpec tab7 = tabs.newTabSpec("library");
- tab7.setIndicator(footer_tab_btn7);
- tab7.setContent(R.id.text7);
- tabs.addTab(tab7);
- }
- private OnTabChangeListener TabChangeListener = new OnTabChangeListener() {
-
- @Override
- public void onTabChanged(String tabId) {
- int j = tabs.getTabWidget().getTabCount();
- ImageButton currentView =(ImageButton) tabs.getCurrentTabView();
- for (int i = 0; i < j ; i++){
- if(tabs.getCurrentTab() == i){
- currentView.setEnabled(false);
- }else{
- if(tabs.getTabWidget().getChildTabViewAt(i) != null){
- ((ImageButton)tabs.getTabWidget().getChildTabViewAt(i)).setEnabled(true);
- }
- }
- }
- }
- };;
- }
1.没有使用TabActivity,这是在3.0中不建议使用的。
2.setContent()函数除了直接添加视图ID,还可以添加intent直接在Tab的内容部分打开一个activity。如需要了解详细实现过程可自行搜索,也可以发邮件至我的邮箱jayzhou215@163.com
3.重载onTabChanged(String tabId) 函数的目的是实现按下面按钮时变蓝的效果,具体请查看源码
4.之所以菜单栏会在底部显示是在TabHost和TabWidget之间加了一层RelativeLayout,将TabWidget设置为alignParentBottom即可。
main.xml源码:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TabHost
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/tabhost"
- tools:ignore="UselessParent" >
- <RelativeLayout
- android:layout_width="fill_parent"
- android:layout_height="match_parent"
- >
- <TabWidget
- android:id="@android:id/tabs"
- android:layout_width="fill_parent"
- android:layout_height="50dp"
- android:layout_alignParentBottom="true"
- >
- </TabWidget>
-
- <FrameLayout
- android:id="@android:id/tabcontent"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_above="@android:id/tabs"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text1"
- android:id="@+id/text1"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text2"
- android:id="@+id/text2"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text3"
- android:id="@+id/text3"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text4"
- android:id="@+id/text4"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text5"
- android:id="@+id/text5"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text6"
- android:id="@+id/text6"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:text="@string/text7"
- android:id="@+id/text7"
- />
- </FrameLayout>
- </RelativeLayout>
- </TabHost>
- </RelativeLayout>
- 底部菜单栏
- android实现底部菜单栏
- android实现底部菜单栏
- avd:底部菜单栏
- Android底部菜单栏设计
- android底部菜单栏demo
- android底部菜单栏实现
- android底部菜单栏
- TabActivity底部菜单栏
- 实现底部菜单栏
- Android底部菜单栏
- Fragment实现底部菜单栏
- Android--底部菜单栏实现
- Fragment底部菜单栏
- android底部菜单栏demo
- android底部菜单栏demo .
- Fragment实现底部菜单栏
- Android底部菜单栏
- SharePoint2010 内容类型剖析
- [mpeg4]mpeg4码流分析
- 内存对齐.结构体对齐
- Linux下定时任务的查看及取消
- WIN7虚拟网卡安装【图解】
- 底部菜单栏
- ArcGIS Engine二次开发中有关内存泄漏异常的解决方法
- GlobeControl中设置图层基本高程--ArcGlobe+C#
- 第四章 变换(概述)
- 10个迷惑新手的Cocoa及Objective-C开发难点和问题
- 启动init.rc文件中的service
- linux内核数据库sqlite3的移植和简单操作
- 10年的程序员生涯的忠告
- xcode遇到的遇到的警告、错误,解决方法