之前在项目里也用到了fragment,作为横向滑动的组件显示不同栏目的内容,感觉和activity很类似,也就一直没有多发心思在上面。今天看到一个demo算是把我过去的一些猜想验证了。直接放代码
FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.head, new HeadFragment());//将制定的view替换为fragment对象 ft.replace(R.id.bottom, new BottomFragment()); ft.add(new HeadFragment(), "head");//通过"head"可以从stack中取出对应的fragment 这在之前项目里没有用到 ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);//切换动画 ft.commit();//提交
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".FragmemtActivity" > <LinearLayout android:id="@+id/head" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" > </LinearLayout> <LinearLayout android:id="@+id/bottom" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" > </LinearLayout> </LinearLayout>
以下是某个fragment
public class HeadFragment extends Fragment{ @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View contentView = inflater.inflate(R.layout.head, null); container.addView(contentView); return super.onCreateView(inflater, container, savedInstanceState); } }
fragmeng的布局文件
<?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" > <TextView android:id="@+id/txt_head" android:text="head" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
最让我惊讶的是fragment替换了指定的view
相关推荐
这个"fragment的基础使用方法"主题将深入探讨Fragment的创建、添加、替换以及与Activity交互的细节。 1. **Fragment的创建**:Fragment是Android.app.Fragment类的子类。创建一个新的Fragment时,你需要扩展...
本文将深入探讨ViewPager+Fragment的基本使用方法,以及如何通过它们来设计出更加灵活的界面风格。 首先,让我们了解一下ViewPager。ViewPager源自android.support.v4库,它允许用户在水平方向上滑动浏览多个页面,...
6. **添加和替换Fragment**:另一种常见的实现方式是使用`FragmentManager`的`add()`和`replace()`方法来添加或替换Fragment。这种方式适用于需要动态管理Fragment的场景,比如在运行时添加或移除Fragment。 7. **...
而"MyTabHostDemo"可能是一个使用TabHost和Fragment的演示项目,TabHost是Android早期用来实现标签页切换的组件,与Fragment结合使用可以创建多标签视图的应用。 总的来说,Fragment是Android开发中的重要工具,它...
在Android开发中,`Fragment`和`ViewPager`的组合使用是一种常见的实现屏幕滑动切换的方案,而`ViewPageIndicator`则可以为这种滑动提供更直观的视觉提示。本篇将深入探讨`Fragment`、`ViewPager`以及`...
总之,使用Fragment和BottomNavigationView结合show()和hide()方法是创建带有底部菜单的Android应用的一种常见策略。这种方式能够提供流畅的用户体验,同时有效利用内存,因为Fragment的状态得以保留,不必每次都...
`Fragment`代表一个可重用的UI块,可以在多个`Activity`之间共享,而`ViewPager`则允许用户左右滑动查看多个`Fragment`,通常用于实现平滑的页面滚动效果。在某些复杂的应用场景中,我们可能会遇到多层`Fragment`与`...
用户可以通过点击后退键或调用`FragmentManager.popBackStack()`方法来从栈顶取出并移除最近的Fragment,从而返回到前一个Fragment的状态。 实现“点击退出返回上一个Fragment”的功能,通常有以下几种方式: 1. ...
ViewPager则是一种可以左右滑动切换页面的视图容器,它能够自动管理多个Fragment的生命周期,使得在手机和平板设备上实现流畅的页面滑动成为可能。 **Fragment的使用** Fragment的生命周期与Activity紧密关联,但有...
- 对于复杂的Fragment,注意避免内存泄漏,及时释放资源,合理使用Fragment的onSaveInstanceState()和onViewStateRestored()方法保存和恢复状态。 - 使用Fragment的懒加载策略,避免不必要的初始化操作。 9. **...
Fragment嵌套则是指在一个Fragment内部再包含其他的Fragment,这样的设计可以将复杂的界面逻辑分解为更小、更易管理的部分。下面我们将详细探讨实现这个项目的关键步骤和知识点: 1. **创建Fragment和子Fragment**...
例如,我们可以使用`replace()`方法来替换现有Fragment或者`add()`方法来添加新的Fragment。代码示例: ```java FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction ...
3. **Transaction操作**:动态添加Fragment时,需要使用FragmentManager的beginTransaction()方法开始一个事务,然后调用add(), replace(), remove()等方法进行操作,并最后通过commit()提交事务。例如,添加两个...
Fragment是Android 3.0(API级别11)引入的一个重要概念,它允许开发者在一个活动中拆分多个UI组件或屏幕。Fragment可以独立存在,也可以嵌套在Activity中,使得UI设计更加灵活。以下是Fragment的一些关键知识点: ...
`ViewPager`是Android Support Library的一部分,它允许用户左右滑动来浏览多个页面,而`Fragment`则是一个可以添加到Activity中的模块化屏幕部分。在某些情况下,我们可能需要在一个`Fragment`中嵌套另一个`...
- 使用`FragmentManager`的`beginTransaction()`方法,调用`hide()`、`show()`、`replace()`等方法实现Fragment的切换。 - `hide()`和`show()`用于隐藏和显示已存在的Fragment,而`replace()`则会移除当前Fragment...
7. **更新和替换嵌套Fragment**:如果需要更新或替换已存在的嵌套Fragment,可以使用`FragmentTransaction.replace()`方法,用新的Fragment替换旧的。 8. **处理回退栈**:在嵌套Fragment中,回退栈的管理需要额外...
这需要使用`FragmentManager`的`beginTransaction()`方法开始一个事务,然后调用`add()`方法来添加`Fragment`,最后使用`commit()`提交事务。 3. **处理生命周期**:当一个`Fragment`中包含其他`Fragment`时,需要...
本篇文章将深入讲解Fragment的基本使用方法,并结合源码进行详细解析。 1. **Fragment的生命周期** Fragment有自己的生命周期,包括onAttach(), onCreate(), onCreateView(), onViewCreated(), onStart(), ...
Fragment则代表一个可重用的UI部分,可以在Activity中动态添加、删除或替换。它使得应用程序能够更好地适应不同屏幕尺寸和配置,因为Fragment可以在Activity中自由组合,以适应平板电脑和手机等不同设备。Fragment...