Fragment在低版本中的简单创建使用

本人菜鸟一枚,也就是对刚学的东西有点自己的理解和想法,所以在这里并不能保证我所理解的是正确的,还望各位看官、大牛帮忙指正~

最近正在学习Android的Fragment,因为我的环境是低版本的,所以在这里要用到v4 support兼容包。

在这里先说明一下,因为Fragment是3.0版本以后才有的,所以在3.0版本之前的低版本中要使用Fragment,就要引入v4 support兼容包。

在低版本中使用Fragment的时候特别要注意,不要导错包了!3.0版本之前的低版本中要导入的是:android.support.v4.app.Fragment;在3.0版本及以后中导入的是:android.app.Fragment;

首先,我们先创建一个简单的Fragment:

[创建Fragment]:

SimpleFragment.java

import android.app.Activity;
import android.os.Bundle;
import <strong><span style="color:#ff6666;">android.support.v4.app.Fragment</span></strong>;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class SimpleFragment extends Fragment{
	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		TextView textView = new TextView(getActivity());
		textView.setGravity(Gravity.CENTER_HORIZONTAL);
		textView.setText("创建Fragment");
		textView.setTextSize(40);
		return textView;
	}

}

[解释一下]:

该SimpleFragment类继承了android.support.v4.app.Fragment,并且实现了父类的onCreateView方法,该方法主要的作用就是创建一个View并且返回该View。我们可以理解成Fragment在它所在的Activity下显示的样子,就是由这个方法创建的。在这里我们的Fragment的onCreateView方法只是创建了一个TextView并返回该TextView,让其Fragment在它所在的Activity中显示出一行字“创建Fragment”。


现在Fragment已经创建好了,现在我们需要为它创建一个Activity,并将它添加到该Activity中去。

在低版本中要在Activity中显示Fragment也需要一些条件,我们将不是直接继承Activity这个类,而是继承android.support.v4.app.FragmentActivity,原因也就是在低版本中的Activity中并不能显示Fragment,但是在3.0版本及以后中我们完全是可以直接继承Activity。

[小结]:

3.0版本之前的低版本Activity跟FragmentActivity的区别就是:FragmentActivity比Activity多了操作Fragment的方法。(FragmentActivity是Activity的子类)

3.0版本及以后的Activity跟FragmentActivity功能一样。所以在高版本中我们是直接继承Activity就能操作Fragment。

[创建Activity]:

ActivityMain.java

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import cn.jamkong.helloworld.R;

public class ActivityMain extends FragmentActivity{
	private FragmentManager fragmentManager;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
}
[ActivityMain的布局文件]:

activity_main.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:orientation="vertical" >
<span style="white-space:pre">	</span><fragment 
	<span style="white-space:pre">	</span>android:name="cn.jamkong.helloworld.view.SimpleFragment"
	<span style="white-space:pre">	</span>android:id="@+id/id_fragment"
	<span style="white-space:pre">	</span>android:layout_width="match_parent"
	<span style="white-space:pre">	</span>android:layout_height="wrap_content"
	/>
	</FrameLayout>
</LinearLayout>
在activity_main.xml文件中,我只是添加了一个<fragment>标签,在该标签内设置了name、id、和宽高。name的值便是我们创建的SimpleFragment类,要将它的完整名称填进去,这样便可以在我们ActivityMain中看到SimpleFragment中的TextView文字了。


[总结]:

1. 3.0之前版本要使Activity能够操作Fragment,就需要继承FragmentActivity。

    3.0及之后版本直接继承Activity便可。

2. 3.0之前版本创建Fragment需要继承的是android.support.v4.app.Fragment;

    3.0及之后版本继承android.app.Fragment;

3. Activity在布局文件中可以直接使用<fragment>标签进行添加Fragment。













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值