fragment初识

ragement:碎片,ui的一个部分或行为,类似于activity,需嵌入在activity中,一个activity包含多个fragement,可以最大程度适配不同尺寸的手机activity的一部分Oncreate:全局变量赋值,初始化信息。在此之前,已经创建Onattach:fragement绑定activity

Oncreate:oncreateView:给fragement设置页面OnactivityCreated:ondestroyView()Ondestroy()Ondetach()Fragement使用步骤:创建fragement布局文件继承fragement类自定义fragement,实现相关方法Layoutinflate:布局加载器控件?

动态添加:直接在布局文件中引用

静态添加:

public class SecondFragment extends FragmentActivity implements OnClickListener,OnBackgroundChangeListener{
    private Button btnadd;
    @Override
    protected void onCreate(Bundle arg0) {
        // TODO Auto-generated method stub
        super.onCreate(arg0);
        setContentView(R.layout.second_fragment);
        btnadd=(Button) findViewById(R.id.addfragment);
        findViewById(R.id.addfragment).setOnClickListener(this);
        findViewById(R.id.delfragment).setOnClickListener(this);
        findViewById(R.id.hidefragment).setOnClickListener(this);
        findViewById(R.id.showfragment).setOnClickListener(this);
        findViewById(R.id.btnChange).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        FragmentTransaction ft;
        switch(v.getId()){
        case R.id.addfragment:
            //添加fragment道activity
            FragmentManager fm=getSupportFragmentManager();
            ft=fm.beginTransaction();
            ft.add(R.id.fragmentContainer, new FirstFragement(), "chaos");

            ft.commit();
            break;
        case R.id.delfragment:
            //ft=getSupportFragmentManager().beginTransaction();
            Fragment f=getSupportFragmentManager().findFragmentByTag("chaos");
            ((FirstFragement)f).setOnBackgroundChangeListener(this);
            //ft.remove(f);
            //ft.commit();
            break;
        case R.id.showfragment:
            ft=getSupportFragmentManager().beginTransaction();
            Fragment sf=getSupportFragmentManager().findFragmentByTag("chaos");
            ft.show(sf);
            ft.commit();
            break;
        case R.id.hidefragment:
            ft=getSupportFragmentManager().beginTransaction();
            Fragment hf=getSupportFragmentManager().findFragmentByTag("chaos");
            ft.hide(hf);
            ft.commit();
            break;
        case R.id.replacefragment:
            ft=getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.fragmentContainer, new FirstFragement(), "chaoss");
            ft.commit();
            break;
        case R.id.btnChange:
            FirstFragement ff=(FirstFragement) getSupportFragmentManager().findFragmentByTag("chaos");
            if(ff==null){
                return;
            }
            ImageView img=(ImageView) findViewById(R.id.img);
            img.setImageResource(R.drawable.bbe609315da7a9bfa65df713e7c168e0);
            break;
        default:
            break;
        }

    }
    public void onBackgroundChange(){
        btnadd.setBackgroundResource(R.drawable.bc494385774b8343123c5697ebeaeb9);
    }

}
时间: 2024-12-09 05:26:08

fragment初识的相关文章

进阶篇-用户界面:1.Fragment-初识Fragment组件

1.初识Fragment Fragment的中文含义是碎片,在之前安卓开发是,用户界面的切换全部使用activity的切换,这就造成了整个应用使用起来速度较慢,而且很占内存,因为activity是重量级的组件,在应用程序内部使用很不方便.于是出现了Fragment来解决这样的问题.Fragment是一种便捷的.轻量级的.基于activity的组件,所谓基于activity,就是必须有activity作为容器,Fragment才可以生存.另外,Fragment 可以动态的添加和删除.所以说Frag

[OpenGL]环境搭建以及OpenGL初识

想往游戏行业发展的话,经常被提及到的就是OpenGL和DirectX,这两者听起来感觉是一门挺高深的技术,今天我也开始摸索学习OpenGL,那么OpenGL到底是什么?它和DirectX有什么区别和联系? OpenGL初识 OpenGL只是一套图形函数库 DirectX包含图形.声音.输入.网络等模块. 但就图形而论,DirectX的图形库性能不如OpenGL,OpenGL稳定,可以跨平台使用,DirectX只支持Windows平台,所以OpenGL还是有它的优势!OpenGL ES是OpenG

初识安卓小程序(点击按钮切换屏幕颜色)

如图,点击按钮就会切换屏幕的颜色 首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"world",当然,也可以别的名称 然后在res文件夹下找到layout文件夹,找到activity_main.xml或fragment_main.xml,在里面输入或拖拽按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="htt

Android Study 之 初识ButterKnife(8.5.1)及简单运用

LZ-Says:突然间不知道说什么好,祝大家编码无bug吧~ 前言 话说,Android开发的兄弟们都知道,每次初始化控件,设置相应的事件,写的那点过程多而且恶心.我们先一块回顾下不堪的曾经~ 那些年... 那些年,我们是这样初始化控件: // 每次的习惯上来写一个initView()方法 tvContent = (TextView) findViewById(R.id.btn_content); // 遇到项目大的时候,这里面的东西,也曾占据半壁江山...苦不堪言 // 当然也曾封装过方法,避

初识安卓小程序(Android电话拨号器)

首先,先创建一个安卓项目(我的版本是4.4.2的),名字为"电话拨号器",创建的时候点击"clipart",如图: 然后在res文件夹下找到layout文件夹,找到activity_main.xml或fragment_main.xml,在里面输入或拖拽按钮 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="

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

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

capwap学习笔记&mdash;&mdash;初识capwap(四)

2.5.7 CAPWAP传输机制 WTP和AC之间使用标准的UDP客户端/服务器模式来建立通讯. CAPWAP协议支持UDP和UDP-Lite [RFC3828]. ¢ 在IPv4上,CAPWAP控制和数据通道使用UDP.此时CAPWAP报文中的UDP校验和必须设置为0.AC上的CAPWAP控制报文端口为UDP众所周知端口5246,数据报文端口为UDP众所周知端口5247 ,WTP可以随意选择CAPWAP控制和数据端口. ¢ 在IPv6上,CAPWAP控制通道一般使用UDP,而数据通道可以使用U

处女男学Android(十一)---Gallery、ViewPager和ViewPager+Fragment实现的Tab导航

一.前言 有阵子没更新博客了,主要是最近公司接了个P2P的金融借贷项目没人做,被拉去写服务端,所以迟迟没时间继续学习大安卓,想了想自己的安卓水平和公司的专业安卓璟博比起来依旧差距挺大,于是乎我要加把劲赶上才行,所以继续翻开李刚疯狂讲义系列,看到Gallery这个控件了,大致功能是横向滚动查看列表项,再仔细看了一下居然过时了,官方推荐用ViewPager来替代,还没学就过时了,有点不爽,干脆新的旧的一起学习一下,也好进行一下比较吧.废话不多说,首先是已经过时的Gallery. 二.画廊视图Gall

Android零基础入门第87节:Fragment添加、删除、替换

前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加.删除.替换. 一.概述 在前面的学习中,特别是动态加载的时候,有提到FragmentManager和FragmentTransaction类,这里先来详细了解一下其到底为何物. 1.FragmentManager 要管理Activity中的Fragments,就需要使用FragmentManager类.通过getFragmentManager()或g