android开发之Fragment加载到一个Activity中

Fragments 是android3.0以后添加的。主要是为了方便android平板端的开发。方便适应不同大小的屏幕。此代码是为了最简单的Fragment的使用,往一个Activity中添加Fragment,主要涉及的知识点有:1、Fragment类的创建,2、Fragment的添加3、无UI的 Fragment的添加,根据Tag找回Fragment

Fragment对应的Xml布局文件,

<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=".MainActivity"

android:weightSum="10" >

<Button

android:id="@+id/bt"

android:layout_width="match_parent"

android:layout_height="0dp"

android:text="添加一个Fragment"

android:layout_weight="2"/>

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="将Fragment加载到Activity中,此Fragment中没有UI,即不需要实现onCreateView方法,可以当做此Activity的背景色" />

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="根据Fragment的Tag找到Fragment" />

<LinearLayout

android:id="@+id/lv_fragment_container"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="9"

android:background="#123456"

android:orientation="horizontal">

</LinearLayout>

</LinearLayout>

1、Fragment的创建

package com.example.fragment1;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

/**

* @author sea

* 创建一个Fragment至少要实现三个生命周期函数onCreate,onCreateView,onPause

*

*/

public class MyFragment extends Fragment {

/*

* 初始化Fragment,实例化在Fragment中的成员变量

*/

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

}

/*

* 给Fragment 加载UI的布局,返回Fragment布局文件对应的东东

*/

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// TODO Auto-generated method stub

View view = inflater.inflate(R.layout.fragment,container, false);

return view;

}

/*

* 当用户离开此Fragment时调用

*/

@Override

public void onPause() {

// TODO Auto-generated method stub

super.onPause();

}

}

2、无UI的Fragment的创建

package com.example.fragment1;

import android.app.Fragment;

import android.os.Bundle;

public class MyFragment2 extends Fragment {

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

}

@Override

public void onPause() {

// TODO Auto-generated method stub

super.onPause();

}

}

3、Fragment的添加到Activity中

package com.example.fragment1;

import android.os.Bundle;

import android.app.Activity;

import android.app.FragmentManager;

import android.app.FragmentTransaction;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

/**

* @author sea

* 将fragment加载到一个Activity中

* 方法一代码:如此例子主要是用到FragmentTransaction类

* 方法二:直接在xml文件中添加

*

*/

public class MainActivity extends Activity {

private Button button;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button) findViewById(R.id.bt);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

//找到FragmentTransaction

FragmentManager fragmentManager = getFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.

beginTransaction();

MyFragment fragment = new MyFragment();

//加到Activity中

fragmentTransaction.add(R.id.lv_fragment_container,fragment);

//加到后台堆栈中,有下一句代码的话,点击返回按钮是退到Activity界面,没有的话,直接退出Activity

//后面的参数是此Fragment的Tag。相当于id

fragmentTransaction.addToBackStack("fragment1");

//记住提交

fragmentTransaction.commit();

}

});

}

}

android开发之Fragment加载到一个Activity中

时间: 2024-12-16 21:03:07

android开发之Fragment加载到一个Activity中的相关文章

Android开发之Fragment详解

Android开发之Fragment学习 1.简介: Fragment是Android 3.0引入的新API. Fragment代表了 Activity的子模块,因此可以把Fragment理解成Activity片段.Fragment用于自己的生命周期,也可以接受它自己的输入事件. Fragment必须被"嵌入" Activity中使用,因此虽然Fragment也拥有自己的生命周期,但Fragment的生命周期会受它所在的Activity的生命周期的控制.例如,当Activity暂停时,

Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下.1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber)); startActivity(intentPhone); 2)跳转到拨号界面 Intent intent = newIntent(Intent.ACTION_DIAL,Uri.pars

Android开发之Fragment的介绍、使用及生命周期

Fragment官网介绍-http://developer.android.com/guide/components/fragments.html 1.Fragment简介及两个版本介绍 Fragment是Android3.0(API 11)引入的. Fragment和Activity的关系(引用官网原话):You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fr

Android开发之Fragment的替换显示

一般写程序时我们都是得到FragmentManager,然后开启一个事务,然后进行Fragment的替换,然后提交事务. //1.得到FragmentManger FragmentManager fm = getSupportFragmentManager(); // //2.开启事务 FragmentTransaction transaction = fm.beginTransaction(); // //3.替换 transaction.replace(R.id.fl_content, fr

Android开发之Fragment传递参数的几种方法

Fragment在Android3.0开始提供,并且在兼容包中也提供了Fragment特性的支持.Fragment的推出让我们编写和管理用户界面更快捷更方便了. 但当我们实例化自定义Fragment时,为什么官方推荐Fragment.setArguments(Bundle bundle)这种方式来传递参数,而不推荐通过构造方法直接来传递参数呢?为了弄清这个问题,我们可以做一个测试,分别测试下这两种方式的不同 首先,我们来测试下通过构造方法传递参数的情况 public class FramentT

Android系列之Fragment(一)----Fragment加载到Activity当中

Android系列之Fragment(一)----Fragment加载到Activity当中 ?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3978989.html 联系方式:[email protected] [正文] Android上的界面展示都是通过Activity实现的,Activity实在是太常用了.但是Activity也有它的局限性

[原]零基础学习SDL开发之在Android使用SDL2.0加载字体

在上一篇文章我们知道了如何在android使用SDL2.0来渲染显示一张png图,而且在上上一篇我们知道如何使用sdl来渲染输出bmp图,那么sdl是否可以渲染输出自己喜爱的字体库的字体呢?答案是当然可以. 我们需要移植SDL_ttf字体库来支持相应的字体的渲染输出. 一.移植SDL_ttf库: 使用如下命令,从SDL Mercurial获取SDL_image的源码: hg clone https://hg.libsdl.org/SDL_ttf/ 将SDL_ttf拷贝到在上一篇文章中的andro

Android开发之Bitmap的高效加载

BitmapFactory类提供了四类方法:decodeFile, decodeResource, decodeStream和decodeByteArray 分别用于支持从文件系统,资源,输入流以及字节数组中加载出一个Bitmap对象,前两者又间接调用了decodeStream 为了避免OOM,可以通过采样率有效的加载图片 如果获取采样率? 1.将BitmapFactory.Options的inJustDecodeBounds的参数设置为true并加载图片 2.从BitmapFactory.Op

Android开发之多Fragment切换优化

问题分析 一直在简书里看别人的技术贴,今天我也来写点自己的心得!最近在写一个项目用到大量的Fragment后的总结! 我想刚刚接触安卓的同学或许会这么写: FragmentManager fragmentManager=getSupportFragmentManager(); FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); fragmentTransaction.add(ViewId,frag