文档章节

使用动态方法建立Fragment

mutouzhang
 mutouzhang
发布于 2014/03/23 11:54
字数 400
阅读 65
收藏 0

MainActivity.java

package com.example.firstfragment;

import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.view.Menu;

public class MainActivity extends Activity
{

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 判断当前手机朝向
		int width = getWindowManager().getDefaultDisplay().getWidth();// 获得窗口管理者
																		// 获得默认分辨率
																		// 获得宽度
		int height = getWindowManager().getDefaultDisplay().getHeight();// 获得窗口管理者
																		// 获得默认分辨率
																		// 获得宽度

		Fragment1 fragment1 = new Fragment1();
		Fragment2 fragment2 = new Fragment2();

		FragmentManager fm = getFragmentManager();// 获得FragmentManager
		FragmentTransaction ft = fm.beginTransaction();// FragmentManager通过开始事务获得事务对象

		if (width > height)
		{
			// 水平方向
			// containerViewId 容器ID
			// 可以在xml中给MainActivity的layout起个ID,也可以用系统提供的方法android.R.id.content,获得当前Activity的界面
			ft.replace(android.R.id.content, fragment1);// 将一个fragment
														// remove掉,然后替换成一个新的

		} else
		{
			// 竖直方向
			ft.replace(android.R.id.content, fragment2);
		}
		ft.commit();// 既然是事务,最后肯定需要提交
	}

}

Fragment1.java

package com.example.firstfragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment1 extends Fragment
{

	/**
	 * 当Fragment被创建时候调用的方法,返回当前Fragment显示的内容
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState)
	{
		//使用xml文件填充fragment1
		return inflater.inflate(R.layout.fragment1, null);
	}
}

Fragment2.java

package com.example.firstfragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment2 extends Fragment
{
	/**
	 * 当Fragment被创建时候调用的方法,返回当前Fragment显示的内容
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState)
	{
		//使用xml文件填充fragment1
		return inflater.inflate(R.layout.fragment2, null);
	}
}

activity_main.xml 没有添加其他内容

fragment1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#0000ff"
    android:orientation="vertical" >
    

</LinearLayout>

fragment2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff0000"
    android:orientation="vertical" >
    

</LinearLayout>


© 著作权归作者所有

共有 人打赏支持
mutouzhang
粉丝 6
博文 190
码字总数 91235
作品 0
洛阳
程序员
私信 提问
Android Fragment 完全解析

我们都知道,Android 上的界面展示都是通过Activity实现的,Activity 实在是太常用了,这里就不再赘述。但 Activity 有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因...

iBazinga
2016/11/25
9
0
Android Fragment完全解析,关于碎片你所需知道的一切

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Activity也有它的局限性,同样的界面在手机上显示可能...

球球
2013/05/31
0
0
动态使用Fragment的方法

1. 动态使用Fragment的方法 1) 在Activity的布局中增加一个FrameLayout, 用来指定Fragment添加的位置和大小 2) 动态添加Fragment FragmentManager fm = getSupportFragmentManager(); Fragme...

胡文城
2018/06/26
0
0
错误:java.lang.IllegalArgumentException: No view found for id 0x7f1001c1解决

在程序中嵌套使用Fragment,实现Fragment中动态加载新的Fragment。程序初始运行时没问题,但运行中时提示:(锁屏,恢复操作。) Caused by: java.lang.IllegalArgumentException: No view fo...

错误
2017/12/16
0
0
Android Fragment完全解析,关于碎片你所需知道的一切

转载请注明出处:http://blog.csdn.net/guolinblog/article/details/8881711 我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了...

simpower
2014/09/17
0
1

没有更多内容

加载失败,请刷新页面

加载更多

为什么强烈建议大家使用枚举来实现单例

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

群星纪元
25分钟前
8
0
Confluence 6 超过当前许可证期限进行升级

这个页面将会对你在进行 Confluence 升级的时候超过了当前许可证的期限进行升级的情况。 许可证警告 在升级的过程中,你将会在 Confluence 的应用程序日志(log file)中看到类似下面的错误提...

honeymoose
38分钟前
2
0
顶尖战略咨询公司常用分析模型

1、KANO模型 日本教授狩野纪昭(Noriaki Kano)构建出的kano模型。将影响用户满意度的因素划分为五个类型,包括: 魅力因素:用户意想不到的,如果不提供此需求,用户满意度不会降低,但当提供...

Moks角木
54分钟前
2
0
Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
今天
3
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
今天
223
8

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部