听着薛之谦的《初学者》刚好看到这篇老文章献给Android初学者。
Android Fragment是Android4.0以上才有的;而FragmentActivity是为了兼容4.0以下版本的Fragment使用的。
所以如果你想兼容4.0以下Android版本使用Fragment的话,框架Activity需要继承FragmentActivity,FragmentActivity这个类是在android.support.v4.app.FragmentActivity里的。
下面介绍2种用法:
1、继承Activity的。
(这个只针对4.0以上的Android平台使用Fragment)。
框架Activity:
2.继承FragmentActivity的(向下兼容4.0以下版本使用Fragment,导入的是android.support.v4包里的内容)
框架Activity:
Fragment代码:
最后再说一句布局:
布局类似这种布局即可,并不是一定非要FrameLayout
Android Fragment是Android4.0以上才有的;而FragmentActivity是为了兼容4.0以下版本的Fragment使用的。
所以如果你想兼容4.0以下Android版本使用Fragment的话,框架Activity需要继承FragmentActivity,FragmentActivity这个类是在android.support.v4.app.FragmentActivity里的。
下面介绍2种用法:
1、继承Activity的。
(这个只针对4.0以上的Android平台使用Fragment)。
框架Activity:
import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * 不兼容4.0以下模式Fragment */ public class Mt_Activity extends Activity implements OnClickListener { private Button btn_first, btn_second; private Fragment Fragment_first, Fragment_Second; private FragmentTransaction fragmentTransaction; private FragmentManager fragmentManager; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.fragment); initView(); Fragment_Second = new Fragment_Second(); fragmentManager = this.getFragmentManager(); fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_fragment_layout, Fragment_Second,"second_Fragment"); fragmentTransaction.commit(); } private void initView() { btn_first = (Button) this.findViewById(R.id.btn_first); btn_second = (Button) this.findViewById(R.id.btn_second); btn_first.setOnClickListener(this); btn_second.setOnClickListener(this); } @Override public void onClick(View arg0) { switch (arg0.getId()) { case R.id.btn_first: // 加载不同的Fragment if (null == Fragment_first) { Fragment_first = new Fragment_first(); } fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_fragment_layout, Fragment_first, "fist_Fragment"); fragmentTransaction.commit(); break; case R.id.btn_second: if (null == Fragment_Second) { Fragment_Second = new Fragment_Second(); } fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_fragment_layout, Fragment_Second, "second_Fragment"); fragmentTransaction.commit(); break; default: break; } } }Fragment代码:
import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment_Second extends Fragment { private View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(container==null) return null; rootView = inflater.inflate(R.layout.fragment_two, container,false); return rootView; } }
2.继承FragmentActivity的(向下兼容4.0以下版本使用Fragment,导入的是android.support.v4包里的内容)
框架Activity:
import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; /** * 兼容4.0以下模式Fragment * */ public class Mt_Activity extends FragmentActivity implements OnClickListener { private Button btn_first, btn_second; private Fragment Fragment_first, Fragment_Second; private FragmentTransaction fragmentTransaction; private FragmentManager fragmentManager; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.fragment); initView(); Fragment_first = new Fragment_first(); fragmentManager = this.getSupportFragmentManager(); fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_fragment_layout, Fragment_first,"first_Fragment"); fragmentTransaction.commit(); } private void initView() { btn_first = (Button) this.findViewById(R.id.btn_first); btn_second = (Button) this.findViewById(R.id.btn_second); btn_first.setOnClickListener(this); btn_second.setOnClickListener(this); } @Override public void onClick(View arg0) { switch (arg0.getId()) { case R.id.btn_first: // 加载不同的Fragment if (null == Fragment_first) { Fragment_first = new Fragment_first(); } fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_fragment_layout, Fragment_first, "fist_Fragment"); fragmentTransaction.commit(); break; case R.id.btn_second: if (null == Fragment_Second) { Fragment_Second = new Fragment_Second(); } fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.main_fragment_layout, Fragment_Second, "second_Fragment"); fragmentTransaction.commit(); break; default: break; } } }
Fragment代码:
import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment_first extends Fragment { private View rootView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(container==null) return null; rootView = inflater.inflate(R.layout.fragment_first, container,false); return rootView; } }
最后再说一句布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:id="@+id/top_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:orientation="horizontal" > <Button android:id="@+id/btn_one" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/top_bar_bg" android:text="按钮一" /> <Button android:id="@+id/btn_two" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/top_bar_bg" android:text="按钮二" /> </LinearLayout> <LinearLayout android:id="@+id/fragment_replace_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/top_bar_layout" android:background="#ff0000" > </LinearLayout> </RelativeLayout>
布局类似这种布局即可,并不是一定非要FrameLayout
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2305
- 用户1336
- 访客11455848
每日一句
Talent without working hard is nothing.
没有努力,天份不代表什么。
没有努力,天份不代表什么。
MySQL 数据库优化
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
免ROOT实现模拟点击任意位置
Mobaxterm终端神器
CreateProcessW要注意的细节问题
Autonomous NAT Traversal
【教程】win10 彻底卸载edge浏览器
eclipse工程基于Xposed的一个简单Hook
排名前5的开源在线机器学习
Mac OS最简单及(Karabiner)快捷键设置
发一款C++编写的麻将
VMware NAT端口映射外网访问虚拟机linux
独家发布最新可用My-AutoPost——wordpress 采集器
新会员