Android组件--碎片(fragment)

1. 基本概念

一.什么是事务:

事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。一个事务中的一系列的操作要么全部成功,要么一个都不做。 事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。

二. 什么是fragment:

Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑,当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment,我们可以把他看成一个小型的Activity,又称Activity片段!想想,如果一个很大的界面,我们就一个布局,写起界面来会有多麻烦,而且如果组件多的话是管理起来也很麻烦!而使用Fragment我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理!从而可以更加方便的在运行过程中动态地更新Activity的用户界面。另外Fragment并不能单独使用,他需要嵌套在Activity中使用,尽管他拥有自己的生命周期,但是还是会受到宿主Activity的生命周期的影响,比如Activity被destory销毁了,他也会跟着销毁。

2. 生命周期

3. 代码

注意:因为Fragment是Activity的一部分,所以不需要再manifest.xml中注册。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="sample.android_serialport_api.adapter.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按键1"
        android:id="@+id/fbt1"/>
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="按键2"
        android:id="@+id/fbt2"/>

    <FrameLayout
        android:id="@+id/mycontainer"     //在所需要放置Fragment的Activity,添加一个,类似容器
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

</LinearLayout>
fragment_blank.xml
<FrameLayout 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:background="@color/colorPrimary"
    tools:context="sample.android_serialport_api.adapter.BlankFragment1">

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="我是framgment一号" />

</FrameLayout>
MainActivity.java
public class MainActivity extends AppCompatActivity {
    Button bt1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = (Button)findViewById(R.id.fbt1);
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.out.println("按键1");
                gotoFragment1();
            }
        });
    }

    private void gotoFragment1(){
        System.out.println("Fragment 1");
        //得到Fragment的管理者
        FragmentManager fm = getFragmentManager();
        //开始一个事务
        FragmentTransaction ft = fm.beginTransaction();

        //创建我们的fragment实例
        BlankFragment1 bf = new BlankFragment1();

        ft.replace(R.id.mycontainer, bf);
        ft.commit();
    }
}
BlankFragment1.java
public class BlankFragment1 extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // 返回一个View,因为fragment没有View
        return inflater.inflate(R.layout.fragment_blank, container, false);
    }
}

时间: 2024-08-30 11:38:33

Android组件--碎片(fragment)的相关文章

Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml

Android开发:碎片Fragment完全解析 为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像 Activity一样包含布局.Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个 Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题.Fragment 2包含了TextView和 ImageView,来显示书的详细内容和图片. AD:51CTO学院:I

Android之碎片Fragment

Fragment是个特别的存在,有点像报纸上的专栏,看起来只占据页面的一小块,但是这一小块有自己的生命周期,可以自行其是,仿佛独立王国,并且这一小块的特性无论在哪个页面,给一个位置就行,添加以后不影响宿主页面的其他区域,去除后也不影响宿主页面的其他区域.每个fragment都有自己的布局文件,依据其使用方式可分为静态注册和动态注册两种,静态注册是在布局文件中直接放置fragment节点,类似于一个普通控件,可被多个布局文件同时引用.静态注册一般用于某个通用的页面部件(如logo条,广告条等),每

Android组件:Fragment实例

Fragment依赖于Activity中,但又与Activity相互独立,可以将其视作Activity里面的子Activity,一般用于平板,因为一个Activity空间太大,所以可以将其分割成几个碎片来用,所以为什么他叫Fragment.Fragment对于手机和平板的软件移植也非常必要. 使用Fragment有两种方式,一种是在XML中写死,一种是java代码来加载.使用步骤是:1.定义一个继承Fragment的类,和相应的xml布局文件:2.继承类中重写几个必要的方法onCreate().

Android开发 碎片Fragment的API全解与标准使用

前言 我还在学习Android开发的时候发过一篇简单的入门Fragment demo代码:https://www.cnblogs.com/guanxinjing/p/9708626.html 但是,Fragment远远不是一个简单的Demo就能了解清楚的,所以此篇博客将讲解FragmentManage的Api的功能 如何获取FragmentManage activity里获取FragmentManage方式如下: @Override protected void onCreate(Bundle

Android组件:Fragment切换后保存状态

之前写的第一篇Fragment实例,和大多数人一开始学的一样,都是通过FragmentTransaction的replace方法来实现,replace方法相当于先移除remove()原来所有已存在的fragments,然后添加add()当前这个fragment.这就导致了一个问题,我们切换一次,然后再切换回来,相当于重新加载了这个fragment,原来的状态不复存在,这显然与我们的日常使用不符.想要保存切换后的状态,思路还是很简单的,我们先添加了若干fragments,切换后将所有fragmen

Android碎片Fragment总结

一.Fragment的相关概念 (一)Fragment的基础知识 Fragment是Android3.0新增的概念,中文意思是碎片,它与Activity十分相似,用来在一个 Activity中描述一些行为或一部分用户界面.使用多个Fragment可以在一个单独的Activity中建 立多个UI面板,也可以在多个Activity中使用Fragment. Fragment拥有自己的生命 周期和接收.处理用户的事件,这样就不必在Activity写一堆控件的事件处理的代码了.更为 重要的是,你可以动态的

android学习八(android碎片fragment的使用)

碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用屏幕的空间.首先建立一个平板的模拟器1034*600,环境使用android4.2.2.在建立一个android的项目,项目名为FragmentTest. 碎片的简单使用 新建一个左侧碎片布局left_fragment.xml代码如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr

Android 关于ViewPager结合碎片Fragment的简单使用

一.      首先在xml添加ViewPager控件 我们希望每个viewpager显示一张图片 新建一个pager_item.xml的文件 代码如下 二.分析   一个ViewPager需要设置一个适配器,这个适配器可以继承FragmentStatePagerAdapter, 适配器同样需要设置数据,这个为适配器添加的是碎片.碎片可以继承Fragment,设置视图,监听等,具体图如下: 三.    上图可知,我们需要新建一个碎片先. 注意,这个继承的Fragment需要是在包android.

【Android应用开发技术:应用组件】Fragment使用方法

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells 一 Fragment管理与事务 Activity通过FragmentManager管理Fragment,FragmentManager可以完成以下功能: 调用findFragmentById()或findFragmentByTag()方法来获取指定的Fragment.在XML