转自: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中的分页控件结合TabLayout可以方便地构建底部菜单,提供良好的用户体验。通过自定义适配器、样式和交互,我们可以根据应用需求打造独一无二的底部导航。在实际开发中,不断实践和优化,你将能熟练掌握...
在Android开发中,分页控件是不可或缺的一部分,它能够帮助用户更有效地浏览大量数据,同时减轻服务器压力。本教程将深入探讨如何在Android中创建一个自定义分页控件,以便实现高效、用户友好的界面。 首先,我们...
"超漂亮分页控件"、"自定义分页控件"以及"灵活的分页控件"这些标签表明我们将探讨一个美观且功能丰富的分页解决方案,它可能支持个性化定制,以适应各种项目需求。 首先,让我们了解一下分页的基本原理。分页是将...
分页控件是网页或应用程序中用于展示大量数据时,常用的一种用户界面元素。它能够帮助用户有效地浏览和导航长列表或表格中的信息,而无需一次性加载所有内容,从而提高用户体验和性能。在本篇文章中,我们将深入探讨...
分页是将大量数据分割成多个较小的部分,每次只加载一部分数据到界面上,以避免一次性加载所有数据导致的性能问题。在WinForm中,这通常通过事件驱动和数据绑定来实现。 1. **控件设计**:自定义分页控件通常包括...
本主题聚焦于"winform分页控件DevExpress版",这是一个高级且功能丰富的控件,能够帮助开发者在WinForm应用程序中实现高效的数据浏览和分页功能。 DevExpress是一家知名的软件公司,提供了一系列高质量的开发工具,...
在IT领域,分页控件是一种常见的用户界面组件,它用于在大量数据中提供高效的浏览体验,避免一次性加载所有数据导致的性能问题。本话题主要围绕一个自定义分页控件进行讨论,这个控件具备处理`DataTable`和SQL查询的...
在.NET框架中,分页控件是Web应用程序中不可或缺的一部分,它用于处理大量数据的显示,提高用户体验。本文将深入探讨.NET自定义分页控件的设计与实现,以及它的优势和应用。 首先,分页控件是数据展示的核心组件,...
本篇文章将详细探讨“C#超级好用的分页控件”的核心概念、实现原理以及其在实际项目中的应用。 首先,我们要明白什么是分页控件。分页控件是Web应用中一种常见的用户界面组件,主要用于展示大数据集时进行分段显示...
在Windows Forms(WinForms)开发中,为了处理大量数据并提高用户界面的可读性和交互性,常常会使用分页控件。标题“winfrom 分页控件”指的是在WinForms应用程序中实现分页功能的控件。这个控件允许用户以较小的...
AspNetPager分页控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行...
在Windows Forms(WinForm)应用开发中,分页控件是一种常见的用户界面元素,它用于在大量数据中实现浏览和导航。本项目提供了一个通用的WinForm分页控件的Demo,供开发者学习和参考。下面我们将深入探讨WinForm分页...
在C# WPF(Windows Presentation Foundation)开发中,分页控件是常用的数据展示组件,尤其在处理大量数据时,可以提高应用的性能和用户体验。本篇将详细讲解C# WPF分页控件的核心概念、实现方式以及如何实现自定义...
在.NET开发环境中,C# WinForm应用经常需要处理大量数据,这时自定义分页控件显得尤为重要。"C# Winform+devexpress 自定义分页控件"是为了解决这个问题而设计的一种解决方案,它利用DevExpress组件库的强大功能,...
"C# Datagridview 分页控件以及测试程序"是一个帮助开发者实现DataGridView分页功能的示例,通过自定义控件和测试程序,开发者可以学习到如何在C#环境中为DataGridView添加分页,提升大数据量展示的效率和用户体验。...
在.NET开发中,分页控件是不可或缺的一部分,尤其是在处理大量数据时,它能帮助用户高效地浏览和操作数据。`.NET` 提供了多种分页控件,其中包括 `Aspnetpager` 分页控件,它以其强大的功能和美观的界面而受到开发者...
自己写的一个js分页控件.已经封装,可以直接使用. 适合各种用途的分页控制. 如果界面不够美观,只需要修改css即可.
在Windows Forms(Winform)开发中,为了处理大量数据并提供良好的用户界面,分页控件是一个不可或缺的组件。本文将深入探讨“Winform的分页控件”,它是一种能够帮助用户逐步浏览大量数据集的工具,使得应用程序的...
分页控件是网页设计中用于处理大量数据展示的一种工具,它可以将大数量的数据分隔成多个小部分,让用户能够逐页浏览,提升用户体验。`aspnetpager.dll`控件是专门为.NET Framework环境设计的,提供了丰富的功能和...
在C#编程环境中,开发Windows桌面应用程序时,我们经常需要处理大量的数据,此时分页控件就显得尤为重要。"C#分页控件,简单好用"这个标题恰好揭示了我们要讨论的核心——如何在C# WinForm应用中实现一个简单易用的...