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!

  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3607848.html
Copyright © 2011-2022 走看看