android tab效果



在Android开发中,"Tab效果"通常指的是使用TabHost或者ViewPager实现的应用程序界面,其中包含多个可切换的标签页。这种设计模式常用于构建多视图应用,让用户能够轻松地在不同的功能或内容之间切换。这里我们将深入探讨如何在Android 2.3(Gingerbread)版本中使用Eclipse IDE来实现这样的效果。 让我们了解Android 2.3中的TabHost组件。TabHost是Android早期版本中用于创建Tabbed界面的主要组件。它包含一个TabWidget,用于显示和选择标签,以及一个FrameLayout,用于显示与每个标签关联的内容。以下是如何使用TabHost的基本步骤: 1. **创建布局**:在res/layout目录下创建一个新的XML布局文件,定义TabHost和TabWidget,以及用于显示内容的FrameLayout。例如: ```xml <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" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> </TabHost> ``` 2. **初始化TabHost**:在Activity的onCreate()方法中,获取TabHost实例,并设置布局: ```java TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); ``` 3. **添加标签**:为每个标签创建一个TabSpec,指定标签文本、图标(如果需要)以及对应的Intent。Intent通常指向一个Fragment或Activity,展示与该标签相关的内容: ```java TabSpec tab1 = tabHost.newTabSpec("标签1"); tab1.setIndicator("标签1", getResources().getDrawable(R.drawable.tab_icon_1)); tab1.setContent(new Intent(this, Tab1Activity.class)); TabSpec tab2 = tabHost.newTabSpec("标签2"); tab2.setIndicator("标签2", getResources().getDrawable(R.drawable.tab_icon_2)); tab2.setContent(new Intent(this, Tab2Activity.class)); // 添加标签到TabHost tabHost.addTab(tab1); tabHost.addTab(tab2); ``` 4. **设置默认选中项**:你可以设置默认显示的标签页: ```java tabHost.setCurrentTab(0); // 显示第一个标签 ``` 然而,随着Android版本的更新,TabHost逐渐被ViewPager替代,因为它提供了更灵活的滑动切换效果。在Android 2.3中,虽然不直接支持ViewPager,但可以通过第三方库如`android.support.v4.view.ViewPager`来实现。ViewPager结合PagerAdapter(如FragmentPagerAdapter或FragmentStatePagerAdapter),可以创建一个动态且可滑动的标签界面。 对于使用ViewPager实现Tab效果的步骤: 1. **依赖库**:添加v4支持库,确保项目build.gradle文件中有以下依赖: ```groovy dependencies { implementation 'com.android.support:support-v4:28.0.0' } ``` 2. **创建布局**:这次在布局文件中,使用ViewPager替换TabHost: ```xml <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. **创建PagerAdapter**:创建一个继承自FragmentPagerAdapter的类,为每个标签页提供一个Fragment实例。 4. **设置ViewPager**:在Activity中,设置PagerAdapter并关联到ViewPager: ```java ViewPager viewPager = findViewById(R.id.pager); viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); ``` 5. **创建指示器**:为了呈现Tab的效果,可以使用TabLayout。虽然在Android 2.3中没有内置的TabLayout,但可以使用自定义View或者第三方库(如ActionBarSherlock)实现类似的功能。 总结起来,"android tab效果"主要涉及使用TabHost或ViewPager来构建一个多标签页的用户界面。在较旧的Android版本中,如2.3,TabHost是标准方法,而随着版本更新,ViewPager和Fragment成为了更推荐的选择,提供了更好的用户体验和更多定制选项。































- 1

- 飘然的风2012-03-14内容一般,drawable不是完整的2.3风格,压缩层次多了点
- wangjz20112012-07-18哈哈,不错不错,应付我交android了的

- 粉丝: 94
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 移动互联网SaaS软件市场背景下--纷享销客市场营销策略分析-终稿.docx
- 计算机导论模拟考试题6份完整版.doc
- 基于 C++ 编程语言实现的神经网络技术解析
- 信息化教学设计小清新文艺范LOMO风.ppt
- 以自动化与工业物联技术打造数字化工厂.pptx
- 单片机课程方案设计书步进电机启动停止正反转.doc
- PLC机械手控制系统方案设计书5.doc
- 计算机网络的拓扑结构-北京大学.doc
- 计算机软件及应用Quasiexperimentaldesigns本.ppt
- 信息化思路下中职机械识图教学与软件教学结合的探究.docx
- 基于深度学习的小学数学课堂教学-(2).doc
- 宿舍网络综合布线系统专业技术实施方案.doc
- 基于单片机的医院病房呼叫系统课程设计.doc
- 人工智能私法的概念网络及其挑战
- 微型计算机接口技术及应用期末考试试卷及答案.doc
- 医院综合布线方案.doc


