`
que2010
  • 浏览: 73643 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】Android 分页控件制成底部菜单

阅读更多

转自:http://blog.csdn.net/knowheart/article/details/7049596

其实Android 中的底部菜单, 可以用分页控件很好的实现。   我们先将自定义分页控件做好, 就可以做到顶底两个位置的菜单了。

 

  TabHost只是作为一个容器来存放一些Activity, 所以需要自己另外创建几个新的Activity, 然后由主TabHost加载。

 

 

tab_style.xml  

是每个Tab的自定义样式

//分页控件样式
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:paddingLeft="5dip"
	android:paddingRight="5dip"
	android:paddingTop="5dip"
	android:background="@drawable/tab_bg"
	>
	
	<FrameLayout 
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		android:layout_weight="0.6"
		>
		<TextView 
			android:id="@+id/tab_label"
			android:layout_width="fill_parent"
			android:layout_height="fill_parent"
			android:gravity="center"
			android:background="@drawable/tab_title_selector"
			android:textColor="#FFFFFF"
			android:textStyle="bold"
		/>
	</FrameLayout>	
</LinearLayout>

 

 

main_tab.xml   是主TabHost布局文件

//TabHost布局
<?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"
	>
	
 	//必须包含下列三个View
	<LinearLayout
		android:orientation="vertical"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent"
		>

<FrameLayout 
			android:gravity="center" 
			android:id="@android:id/tabcontent"
			android:layout_width="fill_parent"
			android:layout_height="wrap_content"
			android:layout_weight="1.0"
		/>
		
		//TabWidget位置在FrameLayout之下则显示在低部, 在之上则显示在顶部
		<TabWidget 
			android:id="@android:id/tabs"
			android:layout_height="wrap_content"
			android:layout_width="fill_parent"
			android:layout_weight="0.0"
			/>
		
	</LinearLayout>	
	
</TabHost>

 

 

tab_title_selector.xml

是Tab中TextView的按下背景

//选择器,指示Text按下后的背景
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
	<item
		android:state_focused="true"
		android:drawable="@drawable/tab_btn_bg_d"
		/>
	<item
		android:state_selected="true"
		android:drawable="@drawable/tab_btn_bg_d"
		/>
	<item
		android:state_pressed="true"
		android:drawable="@drawable/tab_btn_bg_d"
		/>
</selector>

 

 

Activity类

另外还需要几个Activity类, 普通的Activity类即可, 在此不显示。

public class TabTest extends TabActivity
{
	private TabWidget mTabWidget;
	private TabHost	mTabHost;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main_tabs);
		
		mTabHost = getTabHost();
		
		//将要显示的Activity载入TabHost控件
		//要显示的Activity由自己自由创建
		setTabIndicator("one", 1, new Intent(this, OneActivity.class));
		setTabIndicator("Two", 2, new Intent(this, TwoActivity.class));
		setTabIndicator("Three", 3, new Intent(this, OneActivity.class));
		setTabIndicator("Four", 4, new Intent(this, TwoActivity.class));
	}
	
	private void setTabIndicator(String title, int nId, Intent intent)
	{
		//使用指定Tab样式
		View view = LayoutInflater.from(this.mTabHost.getContext())
					.inflate(R.layout.tab_style, null);
		
		TextView text 	= (TextView)view.findViewById(R.id.tab_label);
		String strId 	= String.valueOf(nId);
		
		text.setText(title);
		
		//创建一个新Tab
		TabHost.TabSpec localTabSpec = mTabHost.newTabSpec(strId)
						.setIndicator(view).setContent(intent);
		//加载新Tab
		mTabHost.addTab(localTabSpec);
	}
}

 

分享到:
评论

相关推荐

    Android 分页控件制成底部菜单

    总之,Android中的分页控件结合TabLayout可以方便地构建底部菜单,提供良好的用户体验。通过自定义适配器、样式和交互,我们可以根据应用需求打造独一无二的底部导航。在实际开发中,不断实践和优化,你将能熟练掌握...

    android自定义分页控件

    在Android开发中,分页控件是不可或缺的一部分,它能够帮助用户更有效地浏览大量数据,同时减轻服务器压力。本教程将深入探讨如何在Android中创建一个自定义分页控件,以便实现高效、用户友好的界面。 首先,我们...

    超漂亮分页控件 自定义分页控件 灵活的分页控件

    "超漂亮分页控件"、"自定义分页控件"以及"灵活的分页控件"这些标签表明我们将探讨一个美观且功能丰富的分页解决方案,它可能支持个性化定制,以适应各种项目需求。 首先,让我们了解一下分页的基本原理。分页是将...

    分页控件;分页控件;分页控件

    分页控件是网页或应用程序中用于展示大量数据时,常用的一种用户界面元素。它能够帮助用户有效地浏览和导航长列表或表格中的信息,而无需一次性加载所有内容,从而提高用户体验和性能。在本篇文章中,我们将深入探讨...

    WinForm自定义分页控件

    分页是将大量数据分割成多个较小的部分,每次只加载一部分数据到界面上,以避免一次性加载所有数据导致的性能问题。在WinForm中,这通常通过事件驱动和数据绑定来实现。 1. **控件设计**:自定义分页控件通常包括...

    winform 分页控件 DevExpress版

    本主题聚焦于"winform分页控件DevExpress版",这是一个高级且功能丰富的控件,能够帮助开发者在WinForm应用程序中实现高效的数据浏览和分页功能。 DevExpress是一家知名的软件公司,提供了一系列高质量的开发工具,...

    分页控件(自定义分页控件)

    在IT领域,分页控件是一种常见的用户界面组件,它用于在大量数据中提供高效的浏览体验,避免一次性加载所有数据导致的性能问题。本话题主要围绕一个自定义分页控件进行讨论,这个控件具备处理`DataTable`和SQL查询的...

    .net分页控件,.net自定义分页控件

    在.NET框架中,分页控件是Web应用程序中不可或缺的一部分,它用于处理大量数据的显示,提高用户体验。本文将深入探讨.NET自定义分页控件的设计与实现,以及它的优势和应用。 首先,分页控件是数据展示的核心组件,...

    C#超级好用的分页控件

    本篇文章将详细探讨“C#超级好用的分页控件”的核心概念、实现原理以及其在实际项目中的应用。 首先,我们要明白什么是分页控件。分页控件是Web应用中一种常见的用户界面组件,主要用于展示大数据集时进行分段显示...

    winfrom 分页控件

    在Windows Forms(WinForms)开发中,为了处理大量数据并提高用户界面的可读性和交互性,常常会使用分页控件。标题“winfrom 分页控件”指的是在WinForms应用程序中实现分页功能的控件。这个控件允许用户以较小的...

    能用漂亮分页控件及Demo源码

    AspNetPager分页控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行...

    WinForm中的分页控件

    在Windows Forms(WinForm)应用开发中,分页控件是一种常见的用户界面元素,它用于在大量数据中实现浏览和导航。本项目提供了一个通用的WinForm分页控件的Demo,供开发者学习和参考。下面我们将深入探讨WinForm分页...

    c# wpf分页控件

    在C# WPF(Windows Presentation Foundation)开发中,分页控件是常用的数据展示组件,尤其在处理大量数据时,可以提高应用的性能和用户体验。本篇将详细讲解C# WPF分页控件的核心概念、实现方式以及如何实现自定义...

    C# Winform+devexpress 自定义分页控件

    在.NET开发环境中,C# WinForm应用经常需要处理大量数据,这时自定义分页控件显得尤为重要。"C# Winform+devexpress 自定义分页控件"是为了解决这个问题而设计的一种解决方案,它利用DevExpress组件库的强大功能,...

    c# Datagridview 分页控件以及测试程序

    "C# Datagridview 分页控件以及测试程序"是一个帮助开发者实现DataGridView分页功能的示例,通过自定义控件和测试程序,开发者可以学习到如何在C#环境中为DataGridView添加分页,提升大数据量展示的效率和用户体验。...

    .net分页控件以及分页控件三种美丽风格

    在.NET开发中,分页控件是不可或缺的一部分,尤其是在处理大量数据时,它能帮助用户高效地浏览和操作数据。`.NET` 提供了多种分页控件,其中包括 `Aspnetpager` 分页控件,它以其强大的功能和美观的界面而受到开发者...

    js分页控件--js封装的分页控件

    自己写的一个js分页控件.已经封装,可以直接使用. 适合各种用途的分页控制. 如果界面不够美观,只需要修改css即可.

    Winform的分页控件

    在Windows Forms(Winform)开发中,为了处理大量数据并提供良好的用户界面,分页控件是一个不可或缺的组件。本文将深入探讨“Winform的分页控件”,它是一种能够帮助用户逐步浏览大量数据集的工具,使得应用程序的...

    aspnetpager.dll分页控件

    分页控件是网页设计中用于处理大量数据展示的一种工具,它可以将大数量的数据分隔成多个小部分,让用户能够逐页浏览,提升用户体验。`aspnetpager.dll`控件是专门为.NET Framework环境设计的,提供了丰富的功能和...

    C#分页控件,简单好用

    在C#编程环境中,开发Windows桌面应用程序时,我们经常需要处理大量的数据,此时分页控件就显得尤为重要。"C#分页控件,简单好用"这个标题恰好揭示了我们要讨论的核心——如何在C# WinForm应用中实现一个简单易用的...

Global site tag (gtag.js) - Google Analytics