Android中选项卡功能的实现
来源:互联网 发布:小号软件哪个更好 编辑:程序博客网 时间:2024/06/06 09:03
Android中使用TabHost和TabWidget来实现选项卡功能。TabHost必须是布局的根节点,它包含两个子节点:
TabWidget,显示选项卡;
FrameLayout,显示标签内容。
实现选项卡功能有两种方法,一种是将多个View放在同一个Activity中,然后使用使用标签来进行切换。另一种是直接使用标签切换不同的Activity。
后一种方法更为常用一些。本文也只介绍了后一种方法的实现过程。
1. 创建一个工程,名字可以叫HelloTabWidget。
2. 创建多个不同的Activity,用来表示各个标签页中的不同内容。
3. 为标签设计不同的icon。每个标签应该有两个icon,一个表示选中,一个未选中。将图片放在 res/drawable/文件夹下。然后创建一个相应的
StateListDrawable,用来实现在选中和未选中直接自动的切换。
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When selected, use grey --> <item android:drawable="@drawable/ic_tab_artists_grey" android:state_selected="true" /> <!-- When not selected, use white--> <item android:drawable="@drawable/ic_tab_artists_white" /></selector>
4. 将main.xml替换为以下内容。
<?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"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> </LinearLayout></TabHost>
5. 让你的主Activity继承自TabActivity。
6. 在主Activity的onCreate方法中加入标签
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, ArtistsActivity.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)) .setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, AlbumsActivity.class); spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_albums)) .setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, SongsActivity.class); spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.ic_tab_songs)) .setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(2);}
7. 运行程序即可看到效果。
总结:
main.xml中定义的选项卡的样式,它和TabActivity共同配合,创建了选项卡的框架。TabHost.TabSpec 代表了一个选项卡的内容,TabHost使用addTab方法将其加入到整个选项卡中。
TabHost.TabSpec
- Android中选项卡功能的实现
- Android 选项卡功能的实现
- Android中FragmentTabHost结合fragment实现选项卡功能
- Android中使用View实现选项卡功能
- 简单的选项卡功能实现
- jquery实现简单的选项卡功能
- js实现简单的选项卡功能
- android 选项卡TabHost的功能用法
- 【转载】android中fragment的实现。完全取代选项卡
- Android - TabHost 选项卡功能用法详解&&TabWidget切换卡的实现应用&&实例说明
- Android - TabHost 选项卡功能用法详解&&TabWidget切换卡的实现应用&&实例说明
- Fragments实现选项卡功能
- Jquery实现选项卡功能
- js实现选项卡功能
- Jquery实现选项卡功能
- js_day02_js实现选项卡功能
- jquery实现选项卡功能
- Javascript实现选项卡功能
- poj1038
- oracle存储过程循环插入10000条数据
- SurfaceFlinger启动过程分析(四)
- poj1054
- 引入内核模式安全字符串函数
- Android中选项卡功能的实现
- 在ViewModel中使用NavigationService在ViewModel中使用NavigationService
- sys下面的文件
- 关于 int main(int argc,char* argv[]) 的
- Android中TASK和PROCESS的区别,获取最近运行的程序和正在运行的进程
- emlog将博客正文设置为文章页的description描述
- ActiveX控件的使用方法
- Arguments.length
- 美国学生毕业前必做的20件事