• android开发之Fragment加载到一个Activity中


    Fragments 是android3.0以后添加的。主要是为了方便android平板端的开发。方便适应不同大小的屏幕。此代码是为了最简单的Fragment的使用,往一个Activity中添加Fragment,主要涉及的知识点有:1、Fragment类的创建,2、Fragment的添加3、无UI的 Fragment的添加,根据Tag找回Fragment

     
        Fragment对应的Xml布局文件,
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity"
        android:weightSum="10" >
     
        <Button 
            android:id="@+id/bt"
            android:layout_width="match_parent"
            android:layout_height="0dp" 
            android:text="添加一个Fragment"
            android:layout_weight="2"/>
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"       
            android:text="将Fragment加载到Activity中,此Fragment中没有UI,即不需要实现onCreateView方法,可以当做此Activity的背景色" />
     
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"      
            android:text="根据Fragment的Tag找到Fragment" />
        <LinearLayout 
            android:id="@+id/lv_fragment_container"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="9"
            android:background="#123456"
            android:orientation="horizontal">
     
        </LinearLayout>
    </LinearLayout>
     
    1、Fragment的创建
     
    package com.example.fragment1;
     
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
     
    /**
     * @author sea
     * 创建一个Fragment至少要实现三个生命周期函数onCreate,onCreateView,onPause
     *
     */
    public class MyFragment extends Fragment {
     
        /* 
         * 初始化Fragment,实例化在Fragment中的成员变量
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
        }
     
        /* 
         * 给Fragment 加载UI的布局,返回Fragment布局文件对应的东东
         */
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view = inflater.inflate(R.layout.fragment,container, false);
     
            return view;
        }
     
        /* 
         * 当用户离开此Fragment时调用
         */
        @Override
        public void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
        }
     
    }
     
    2、无UI的Fragment的创建
     
    package com.example.fragment1;
     
    import android.app.Fragment;
    import android.os.Bundle;
     
     
    public class MyFragment2 extends Fragment {
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
     
        }
        @Override
        public void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
        }
    }
     
    3、Fragment的添加到Activity中
     
    package com.example.fragment1;
     
    import android.os.Bundle;
    import android.app.Activity;
    import android.app.FragmentManager;
    import android.app.FragmentTransaction;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
     
    /**
     * @author sea
     * 将fragment加载到一个Activity中
     * 方法一代码:如此例子主要是用到FragmentTransaction类
     * 方法二:直接在xml文件中添加
     *
     */
    public class MainActivity extends Activity {
     
        private Button button;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            button = (Button) findViewById(R.id.bt);
            button.setOnClickListener(new OnClickListener() {
     
                @Override
                public void onClick(View arg0) {
                     //找到FragmentTransaction
                    FragmentManager fragmentManager = getFragmentManager();
                    FragmentTransaction fragmentTransaction = fragmentManager.
                            beginTransaction();
                    MyFragment fragment = new MyFragment();
                    //加到Activity中
                    fragmentTransaction.add(R.id.lv_fragment_container,fragment);
                    //加到后台堆栈中,有下一句代码的话,点击返回按钮是退到Activity界面,没有的话,直接退出Activity
                    //后面的参数是此Fragment的Tag。相当于id
                    fragmentTransaction.addToBackStack("fragment1");
                    //记住提交
                    fragmentTransaction.commit();
     
                }
            });
        }
    }
  • 相关阅读:
    金融风控100道面试题:传统银行开发转行互金top3公司并年薪40多万
    想学好矩阵?首先你要知道矩阵的历史!​
    什么是卷积?
    CNN的卷积核是单层的还是多层的?
    AI换脸之后“AI换声”来了!,一小时诈骗173万!
    介绍两个面试神器
    Github最火!程序员必须知道22大定律和法则
    SQL常用运算符
    SQL利用通配符进行模式查询
    隐藏DataList里面的某一行数据
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/3920065.html
Copyright © 2020-2023  润新知