TabHost是一个过时的类,它的功能可以由Fragment来实现。
FragmentTransaction对fragment进行添加,移除,替换,以及执行其他动作。
从 FragmentManager 获得一个FragmentTransaction的实例 :
FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();
一个小实例:
MainFragment.java
public class MainFragment extends Activity implements OnClickListener{ private Button first, second, third; private FrameLayout fl; private FirstFragment ff; private SecondFragment sf; private ThirdFragment tf; @Override protected void onCreate(Bundle savedInstanceState){ // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); first = (Button)findViewById(R.id.first_btn); second = (Button)findViewById(R.id.second_btn); third = (Button)findViewById(R.id.third_btn); fl = (FrameLayout)findViewById(R.id.fl); first.setOnClickListener(this); second.setOnClickListener(this); third.setOnClickListener(this); ff = new FirstFragment(); sf = new SecondFragment(); tf = new ThirdFragment(); } @Override public void onClick(View v){ switch (v.getId()){ case R.id.first_btn: switchFragment(R.id.fl, ff); break; case R.id.second_btn: switchFragment(R.id.fl, sf); break; case R.id.third_btn: switchFragment(R.id.fl, tf); break; default: break; } } public void switchFragment(int id, Fragment fragment){ try{ FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(id, fragment); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); ft.commit();// 提交 } catch (Exception e){ e.printStackTrace(); } } }
FirstFragment.java,SecondFragment、ThirdFragment代码相似
public class FirstFragment extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ // TODO Auto-generated method stub View fragmentView = inflater.inflate(R.layout.first, null); return fragmentView; } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/first_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="first"/> <Button android:id="@+id/second_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="second"/> <Button android:id="@+id/third_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="third"/> </LinearLayout> <FrameLayout android:id="@+id/fl" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> </LinearLayout>
first.xml,second.xml,third.xml代码相似,当然可自行布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/blue"> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/win"/> </LinearLayout>
效果截图:
相关推荐
这个压缩包“Android高级应用源码-Fragment实现TabHost效果.zip”包含了一个使用Fragment来实现传统TabHost功能的示例。TabHost通常用于在多个相关视图之间切换,而Fragment的引入则为这一任务提供了更现代、更灵活...
在早期的Android版本中,TabHost与Activity紧密相连,但在Android 3.0(API级别11)引入Fragment后,我们可以通过Fragment来实现更灵活的TabHost效果。 在Android中,Fragment的使用使得UI的模块化更为明显,每个...
本教程将详细讲解如何利用Fragment实现TabHost效果,以达到更现代、灵活的UI设计。 首先,理解Fragment是Android 3.0(API级别11)引入的一个重要概念,它代表了屏幕上的一个可重用的UI部分。与Activity相比,...
在本项目中,“纯代码编写的Fragment实现TabHost另加3D翻转切换”展示了如何不借助XML布局文件,完全通过Java代码来创建和管理Fragment,并在TabHost之间添加动态的3D翻转切换效果。 首先,让我们深入理解`Fragment...
在Android开发中,`Fragment`和`TabHost`是两种重要的组件,它们分别用于构建复杂的用户界面和实现多标签切换效果。本资源“安卓FragmentTab选项卡相关-Fragment实现TabHost效果.rar”提供了使用`Fragment`来模仿...
本demo主要是用Fragment实现TabHost的功能,是完全的实现,和之前两个demo相比,这个是完全从不同的角度来实现选项卡的功能,可以看看这三篇文章,对这个demo的理解会更深刻一些...
本文将详细介绍如何使用Fragment来实现类似于TabHost的效果。 首先,我们需要了解Fragment的基本概念。Fragment是Android中的一个组件,它代表了应用界面的一部分可重用逻辑和视图。与Activity相比,Fragment更加...
在现代Android开发中,`TabHost`的使用逐渐被`ViewPager`和`TabLayout`所取代,但了解如何使用`Fragment`实现`TabHost`对于理解Android历史和某些特定场景仍然很有价值。 `Fragment`是Android 3.0(API级别11)引入...
在Android应用开发中,`Fragment`和`TabHost`是两个关键组件,它们分别用于创建动态、可重用的UI组件和实现多标签页切换功能。`TabHost`是早期Android SDK中的一个类,用于创建带有多个选项卡的界面,每个选项卡可以...
本篇文章将深入探讨如何使用`Fragment`来实现类似于`TabHost`的功能,以创建一个动态且灵活的用户界面。 `Fragment`是Android 3.0(API级别11)引入的一个新概念,它是应用程序界面的一部分,可以在Activity之间...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
在Android应用开发中,"使用Fragment+Tabhost实现切换"是一种常见的设计模式,它能够创建出功能丰富的用户界面,尤其适合在平板电脑和大屏幕设备上展现多面板布局。Fragment是Android 3.0(API级别11)引入的一个...
以上就是关于"Android fragment 内部嵌套tabhost组件"的相关知识点,实际开发中还需要根据具体需求进行调整和优化,以实现最佳的用户体验。在给定的HarlanFragment示例中,可以进一步学习如何将这些概念应用于实践。
在Android应用开发中,`Fragment`、`TabHost`和`RadioGroup`是构建多页面、多选项交互界面的重要组件。下面将详细解释这三个组件及其结合使用的知识点。 首先,`Fragment`是Android 3.0(API级别11)引入的一个重要...
在Android应用开发中,"使用Fragment替代TabHost实现分页效果"是一种常见的设计模式,它有助于提高代码的可维护性和灵活性。Fragment是Android SDK 3.0(API级别11)引入的一个组件,用于在大屏幕设备如平板电脑上更...
在这个过程中,`Fragment`和`TabHost`是两个核心组件,它们能有效地帮助我们实现这个目标。 首先,`Fragment`是Android SDK提供的一种组件,它允许我们在一个活动中包含多个可交互的UI部分。`Fragment`的设计目的是...
本教程将详细讲解如何利用`Fragment`和`TabHost`来实现这一功能,以创建一个名为"NavigationTabDemo"的应用。 `Fragment`是Android SDK中的一个关键组件,它代表了UI的一部分,可以独立于Activity存在,也可以在多...