展会信息港展会大全

android开发之Fragment加载到一个Activity中
来源:互联网   发布日期:2016-01-14 10:20:44   浏览:1677次  

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

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();

}

});

}

}

赞助本站

人工智能实验室

相关热词: fragment Activity android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港