/**
 * 测试使用Fragment(动态使用) 1.
 *         使用FragmentManager和FragmentTransaction动态使用一个Fragment 2. 方式:
 *         add(viewId, fragment): 将fragment的视图添加为指定视图的子视图(加在原有子视图的后面)
 *         replace(viewId, fragment): 将fragment的视图添加为指定视图的子视图(先remove原有的子视图)
 *         remove(fragment) : 将fragment的视图移除
 *
 */
public class MainActivity extends FragmentActivity {

    public MainActivity() {
        Log.e("TAG", "MainActivity()..");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.e("TAG", "MainActivity onCreate()..");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 创建Fragment对象
        MyFragment1 fragment1 = new MyFragment1();
        // 得到FragmentManager
        FragmentManager manager = getSupportFragmentManager();
        // 得到FragmentTransacation
        FragmentTransaction transaction = manager.beginTransaction();
        // 添加Fragment对象并提交
        transaction.add(R.id.ll_main_container, fragment1).commit();
    }

    private MyFragment2 fragment2;
    public void showFragment2(View v) {
        // 创建Fragment对象
        fragment2 = new MyFragment2();
        // 得到FragmentManager
        FragmentManager manager = getSupportFragmentManager();
        // 得到FragmentTransacation
        FragmentTransaction transaction = manager.beginTransaction();

        //将当前操作添加到回退栈, 这样点击back回到上一个状态
        transaction.addToBackStack(null);

        // 替换Fragment对象并提交
        transaction.replace(R.id.ll_main_container, fragment2).commit();
    }

    public void deleteFragment2(View v) {

        // 得到FragmentManager
        FragmentManager manager = getSupportFragmentManager();
        // 得到FragmentTransacation
        FragmentTransaction transaction = manager.beginTransaction();
        // 移除Fragment对象并提交
        transaction.remove(fragment2).commit();
    }
}

public class MyFragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        //加载布局得到View对象并返回

        //创建一个视图对象, 设置数据并返回
        TextView  textView = new TextView(getActivity());
        textView.setText("fragment22222");

        return textView;
    }
}


public class MyFragment1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        Log.e("TAG", "onCreateView()");
        //加载布局得到View对象并返回

        //创建一个视图对象, 设置数据并返回
        TextView  textView = new TextView(getActivity());
        textView.setText("fragment11111");
        textView.setBackgroundColor(Color.RED);

        return textView;
    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="显示fragment2"
            android:onClick="showFragment2"/>

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="移除fragment2"
            android:onClick="deleteFragment2"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll_main_container"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">
    </LinearLayout>
</LinearLayout>

最新文章

  1. ASP.net gridview之性别
  2. SQLServer中给表增加组合唯一约束
  3. auto与decltype
  4. javaWeb学习之运用myeclipse结合tomcat开发一些简单的jsp和service
  5. php随机验证码
  6. linux磁盘简单分区方式
  7. 2014年度辛星全然解读html第七节
  8. 如何让celery接受定制的参数
  9. 利用squid 反向代理提高网站性能
  10. 我的winows server 2012 突然多了个piress的帐户,后来一查原来是mysql漏洞的问题,郁闷
  11. 第三次Sprint
  12. Bean和Spirng模块
  13. 有趣的canvas
  14. Flume+Kafka整合
  15. jsp的九大内置对象(查询资料,搬砖所得)
  16. select into的缺点
  17. 在centos上用nginx访问php显示404
  18. oracle用expdp定时备份所有步骤详解[转]
  19. 如果有人问你CAP理论是什么,就把这篇文章发给他。
  20. 多个&quot;.h&quot;文件中声明及定义 全局变量和函数

热门文章

  1. RecycleViewScrollHelper--RecyclerView滑动事件检测的辅助类
  2. Asp.net对文件夹和文件的操作类
  3. API接口管理工具postman等
  4. netty实现长连接心跳检
  5. MySQL binlog-do-db选项是危险的[转]
  6. eclipse高速查找一个变量、方法或者类被引用的地方
  7. GridView 获取列字段的几种途径
  8. sprint3 【每日scrum】 TD助手站立会议第三天
  9. DCDC电路电感和电容啸叫的原因
  10. win10多用户远程登录