zoukankan      html  css  js  c++  java
  • Android笔记之Fragment初步

    1、 要使用fragment,首先需要创建一个类继承

    android.app.Fragment;

    Fragment1.java(需要给Fragment1配置布局文件f1.xml)

    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 void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
        }
        
        //给Fragment 加载UI布局,组件例如button,textview等等在这里去初始化
    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub //这个布局没有父布局,所以root置空 View view=inflater.inflate(R.layout.f1, null); return view; } }

    2、Activity调用

    import android.os.Bundle;
    import android.app.Activity;
    import android.app.Fragment;
    import android.app.FragmentManager;
    import android.app.FragmentTransaction;
    import android.view.Menu;
    
    public class MainActivity extends Activity {
    
        private FragmentManager manager;
        private FragmentTransaction transaction;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            //将activity_main中的某一块换成fragment1
            manager=getFragmentManager();
            transaction=manager.beginTransaction();
            Fragment1 fragment1=new Fragment1();
            //content_frame的内容换成fragment1
            transaction.add(R.id.content_frame, fragment1);
            transaction.commit();
        }
    
    }

    3、使用到回退栈

            //加入Fragment回退栈的标志tag
            transaction.add(R.id.content_frame, fragment1,"fragment1");

    虽然是在同一个Activity下切换Fragment,但是由于回退栈,不会因为返回键而马上退出Activity,而是返回上一个fragment。

    manager.findFragmentByTag(arg0);
    manager.findFragmentById(id);

    4、涉及到的布局

    Activity的布局---》xml包含一个id

    注意这样的id一般是一个FrameLayout的布局,里面可以有其他的控件,比如textview等。但是该id不能够使用比如线性布局LinearLayout 等,否则replace之后原先的布局能被露出

    Fragment的布局---》xml

     transaction.add(Id, Fragment);

    Done!

  • 相关阅读:
    【Qt】Qt之自定义界面(QMessageBox)【转】
    【WinForm】线程中向listview添加数据
    【Qt】Qt之自定义界面(窗体缩放-跨平台终极版)【转】
    【Qt】Qt之自定义界面(窗体缩放)【转】
    【Qt】Qt之自定义界面(添加自定义标题栏)【转】
    【Qt】Qt之自定义界面(实现无边框、可移动)【转】
    【Qt】QWidget、QDialog、QMainWindow的异同点【转】
    【Qt】QSettings读写注册表、配置文件【转】
    【Qt】QSettings介绍【转】
    【Qt】Qt之启动外部程序【转】
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3607848.html
Copyright © 2011-2022 走看看