FragmentTabHost 实现底部android底部菜单的切换
效果图:
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <FrameLayout android:id="@+id/realtabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <android.support.v4.app.FragmentTabHost android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/maintab_toolbar_bg" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="0dp" android:layout_height="0dp" /> </android.support.v4.app.FragmentTabHost> </LinearLayout>
MainActivity:
public class MainActivity extends FragmentActivity { private FragmentTabHost mFragmentTabHost; private LayoutInflater mInflater; private String[] tabs = { "推荐", "仓库", "搜索", "我的" }; private int[] drawables = { R.drawable.tab_home_btn, R.drawable.tab_more_btn, R.drawable.tab_square_btn, R.drawable.tab_selfinfo_btn }; private Class<?>[] fragments = { HomeFragment.class, ClassisFragment.class, SearchFragment.class, SelfishFragment.class }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext=this; mInflater=getLayoutInflater(); mFragmentTabHost=(FragmentTabHost) findViewById(android.R.id.tabhost); mFragmentTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); for (int i = 0; i < fragments.length; i++) { mFragmentTabHost.addTab(mFragmentTabHost.newTabSpec(tabs[i]) .setIndicator(getTabItemView(i)), fragments[i], null); mFragmentTabHost.getTabWidget().getChildAt(i) .setBackgroundResource(R.drawable.selector_tab_background); } } /* * 为每个TabItem添加显示信息 */ private View getTabItemView(int i) { View view = mInflater.inflate(R.layout.tab_item_view, null); ImageView image = (ImageView) view.findViewById(R.id.tab_item_image); image.setImageResource(drawables[i]); TextView text = (TextView) view.findViewById(R.id.tab_item_text); text.setText(tabs[i]); return view; } }
相关推荐
总之,`FragmentTabHost`是Android开发中用于构建Tab布局的强大工具,它结合了`Fragment`的灵活性和`TabHost`的便利性,使得在不同尺寸的屏幕上创建多层级UI变得更加简单。理解和掌握`FragmentTabHost`的使用,对于...
- **适配碎片化设备**:对于Android版本较低的设备,可能需要使用Support Library中的FragmentTabHost(androidx版本为`androidx.fragment.app.FragmentTabHost`)以支持Fragment。 通过以上讲解,你应该对Android...
FragmentTabhost是Android Support Library的一部分,它允许开发者在一个Activity中使用多个Fragment来创建标签页切换的效果,这使得界面更加灵活且易于管理。 **FragmentTabhost基本概念** FragmentTabhost是一个...
7. **示例代码**:以下是一个简单的`FragmentTabHost`使用示例: ```java public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super....
下面是一个简单的示例代码,展示了如何使用FragmentTabHost: ```java public class MainActivity extends Activity { private FragmentTabHost mTabHost; @Override protected void onCreate(Bundle ...
"Android 使用FragmentTabhost代替Tabhost" Android 使用FragmentTabhost代替Tabhost是 Android 开发中的一种常见实践。随着 Android 系统的发展,Fragment 的使用越来越广泛。Tabhost 虽然曾经是 Android 中最常用...
总之,`FragmentTabHost`是Android开发中一个强大且灵活的组件,它使得在Activity中使用`Fragment`进行标签页布局变得简单,同时也提供了更丰富的交互体验。通过理解并熟练运用`FragmentTabHost`,开发者可以构建出...
使用 FragmentTabHost 的步骤非常简单,分为以下几步: 1. 首先,我们需要在布局文件中添加一个 FragmentTabHost 组件。 2. 然后,我们需要在 Activity 中获取 FragmentTabHost 组件,并设置好 Fragment 的内容。 3...
它结合了TabHost和FragmentManager的功能,使得在Android应用中实现多标签页切换并加载不同的Fragment内容变得更为简单。下面我们将深入探讨FragmentTabHost的使用以及Fragment的基础知识。 ### FragmentTabHost的...
- 当使用FragmentTabHost时,确保你的项目支持Android 3.0或更高版本,或者使用Android Support Library以兼容更低版本。 - 如果在FragmentTabHost中使用动态添加的Fragment,需要特别注意生命周期的管理,比如在...
以下是一个简单的FragmentTabHost使用示例: ```java public class MainActivity extends FragmentActivity { private FragmentTabHost mTabHost; @Override protected void onCreate(Bundle ...
以下是一个简单的使用示例: ```java FragmentTabHost tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); tabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent); tabHost....
本示例将详细介绍如何在Android项目中使用FragmentTabHost。 首先,了解FragmentTabHost的基本概念。FragmentTabHost是TabHost和FragmentManager的结合体,它允许你创建一个拥有多个Tab的界面,每个Tab都可以加载一...
但是,随着Android版本的发展,现在更多地推荐使用BottomNavigationView、FragmentTabHost或者Jetpack的NavHost等组件来构建选项卡式界面,因为它们提供了更好的API和更现代的交互体验。不过,了解TabHost的工作原理...
在Android开发领域,FragmentTabHost是一个非常重要的组件,它允许我们在一个Activity中嵌入多个Fragment,从而实现选项卡切换的效果。对于新手来说,理解和掌握FragmentTabHost是提升应用交互体验的关键一步。这篇...
1. 当在`FragmentTabHost`中使用`Fragment`时,确保你的项目使用的是`androidx`库,而不是旧版的`support.v4`库。 2. 为了正确处理`Fragment`的生命周期,你需要在`onSaveInstanceState`和`onRestoreInstanceState`...
在XML布局中,我们可以使用`<android.support.v4.app.FragmentTabHost>`标签来声明一个`FragmentTabHost`。接着,我们需要设置它的`android:id`为`@android:id/tabhost`,这是`TabHost`的默认ID,然后设置它的`...
在这个实践项目中,我们将深入探讨FragmentTabHost的使用方法,以及如何构建一个简单的示例应用。 FragmentTabHost允许开发者在不同的Tab之间切换,每个Tab可以包含不同的Fragment,这样就可以在一个Activity中展示...
下面将详细介绍如何使用 FragmentTabHost 和 FrameLayout 实现底部导航栏,并提供一个简单的示例代码。 一、 FragmentTabHost 和 FrameLayout 的基本概念 FragmentTabHost 是 Android 中的一个控件,可以用来实现...