博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fragment之一:Fragment入门
阅读量:5306 次
发布时间:2019-06-14

本文共 2453 字,大约阅读时间需要 8 分钟。

参考自张泽华视频

Fragment是自Android3.0后引入的特性,主要用于在不同的屏幕尺寸中展现不同的内容。

Fragment必须被嵌入Activity中使用,总是作为Activity的组成部分。

简单示例:

一个Activity的界面由2个部分组成,每个部分分别是一个Fragment。

效果图如下:

1、创建第一个Fragment的界面文件。

Fragment的界面文件和一般的Activity布局文件一样,如。

       

2、创建第一个Fragment的类文件。

package com.ljh.fragmentdemo;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;//继续Fragment类。public class Fragment1 extends Fragment {		@Override	//在Fragment被加载时调用	public View onCreateView(LayoutInflater inflater, ViewGroup container,			Bundle savedInstanceState) {		//加载某个布局文件。		return inflater.inflate(R.layout.fragment1, null);	}}

3、创建第二个Fragment的界面文件。

4、创建第二个Fragment的类文件。

package com.ljh.fragmentdemo;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;//继续Fragment类。public class Fragment2 extends Fragment {		@Override	//在Fragment被加载时调用	public View onCreateView(LayoutInflater inflater, ViewGroup container,			Bundle savedInstanceState) {		//加载某个布局文件。		return inflater.inflate(R.layout.fragment2, null);	}}
5、创建主界面文件。

   
   

6、创建主类。

本步骤的关键是用Fragment对象取代布局文件中的内容。

package com.ljh.fragmentdemo;import com.ljh.fragmentdemo.R;import android.os.Bundle;import android.app.Activity;import android.app.FragmentManager;import android.app.FragmentTransaction;public class MainActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);				//获得FragmentManager,然后获取FragmentTransaction。		FragmentManager fm = getFragmentManager();		FragmentTransaction transaction = fm.beginTransaction();		//用Fragment动态代替布局文件中的内容		transaction.replace(R.id.fragment1, new Fragment1());		transaction.replace(R.id.fragment2, new Fragment2());		//提交事务		transaction.commit();	}}

注:

1、对两个Fragment的分别进行编辑,如

@Override	//在Fragment被加载时调用	public View onCreateView(LayoutInflater inflater, ViewGroup container,			Bundle savedInstanceState) {		//加载某个布局文件。		View root =  inflater.inflate(R.layout.fragment1, null);				TextView tvContent = (TextView) root.findViewById(R.id.tv_content);		tvContent.setText("hello");				return root;	}
2、其它内容见后面博客:

(1)Android2.3及以前对Fragment的支持。

(2)使用Fragment使不同的尺寸的屏幕展现不同内容。

(3)Activity与Fragment之间的通信。

转载于:https://www.cnblogs.com/eaglegeek/p/4557962.html

你可能感兴趣的文章
程序与软件、编程与软件开发的区别
查看>>
stl中的for_each() 函数的注意事项
查看>>
C#json的处理
查看>>
HDU 5120 A Curious Matt(2014北京赛区现场赛A题 简单模拟)
查看>>
GridView中获取隐藏列的值
查看>>
ios 更改UITableview group形式 两个section之间的距离
查看>>
while循环猜年龄随意玩代码
查看>>
HDU-1823 Luck and Love 二维线段树
查看>>
多个手机号逗号分开
查看>>
Bootstrap 中的 Typeahead 组件 -- AutoComplete
查看>>
Java之美[从菜鸟到高手演变]之智力题【史上最全】 (转)
查看>>
在CentOS上安装Sublime Text
查看>>
ORA-02068,ORA-03135错误解决方法
查看>>
Groovy 读取json文件,并用gson反序列化为List集合
查看>>
你可能没用过的10款优秀代码编辑器,最喜欢哪个?
查看>>
HTML 5 标签、属性、事件及浏览器兼容性速查表
查看>>
分享25款鲜艳亮丽的精美桌面壁纸
查看>>
java技术系列(四) 泛型
查看>>
同一台电脑启动两个或多个tomcat
查看>>
HDU 4465 - Candy(概率与数学优化)
查看>>