导读

1.Fragment的介绍
2.Fragment的生命周期
3.Fragment的加载
4.Fragment的删除与替换
5.Fragment的隐藏与显示
6.Fragment间的信息传递

Fragment的介绍

Fragment是Android 3.0之后提出的一个UI控件,它实际上是将layout分成更小的设计单位,同样有生命周期

有了Fragment就可以将平板的布局运用于手机,而不用再单独写一个

Fragment的生命周期

Fragment的加载

在xml文件的静态加载方法

Fragment布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#bebebe"><TextView
        android:layout_width="100dp"android:layout_height="100dp"android:text="Fragment"/></LinearLayout>

Fragment的java文件

package com.hala.view01;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;/*** Created by air on 2018/1/28.* xml静态加载Fragment的步骤:* 1。创建Fragment的java文件,要继承Fragment,同时要重写onCreateView方法* 2。设置Fragment的布局文件* 3。在要显示Fragment的布局文件(activity_main2.xml)中,编写fragment项,并绑定2中的Fragment布局文件*/public class Fragment_test extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {/*第一个参数:Fragment要加载的布局文件第二个参数:参数列表中的container,是加载页面的容器第三个参数:是否加载布局文件的根视图*/return inflater.inflate(R.layout.layout,container,false);}
}

第一页面的布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.MainActivity"><Button
        android:id="@+id/bt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginBottom="8dp"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"android:text="Fragment基本使用"android:onClick="click"/></android.support.constraint.ConstraintLayout>

第一页面的java文件

package com.hala.view01;import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.icu.util.Calendar;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View v){startActivity(new Intent(MainActivity.this,Main2Activity.class));}}

第二页面的布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.Main2Activity"android:id="@+id/main2_layout"><TextView
        android:id="@+id/bt2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="在xml文件中直接使用Fragment"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginBottom="8dp"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent" /><!--此处有两点需要注意1.fragment内要有tool项指定设定好的Fragmrnt布局文件2.外层布局中要有这一行  android:id="@+id/main2_layout"--><fragment xmlns:tools="@layout/layout"android:layout_width="wrap_content"android:layout_height="wrap_content"android:name="com.hala.view01.Fragment_test"tools:layout_editor_absoluteY="0dp"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"android:layout_marginBottom="8dp"app:layout_constraintBottom_toTopOf="@+id/bt2"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"></fragment></android.support.constraint.ConstraintLayout>

第二页面的java文件

package com.hala.view01;import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);}}

显示结果

动态加载的方法

其他文件不变

页面二布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.Main2Activity"><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Add"android:onClick="click"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginBottom="8dp" /><!--这里不太一样,最终加载的Fragment会出现在默认位置--><FrameLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/fl_fragment"></FrameLayout></android.support.constraint.ConstraintLayout>

页面二java文件

package com.hala.view01;import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);}public void click(View v){//这里的处理方式类似于数据库对事务的处理方式,注意要选择v4包里的FragmentManager fm=getSupportFragmentManager();FragmentTransaction ft=fm.beginTransaction();//这就是创建的Fragment的java文件那个类Fragment_test ft1=new Fragment_test();//第一个参数:main2Activity布局文件中Fragment的id//第二个参数:创建的Fragment类,而这个类又加载了Fragment布局文件ft.add(R.id.fl_fragment,ft1);//这一步是提交事务步骤ft.commit();}}

显示结果

Fragment的删除与替换

其他文件不变

新增Fragment布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#ff0000"><TextView
        android:layout_width="100dp"android:layout_height="100dp"android:text="Fragment" /></LinearLayout>

新增Fragment的java文件

package com.hala.view01;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;/*** Created by air on 2018/1/28.*/public class Fragment_test1 extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {return inflater.inflate(R.layout.layout1,container,false);}}

页面二布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.Main2Activity"><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Add"android:onClick="click"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginBottom="8dp"android:id="@+id/button" /><FrameLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/fl_fragment"></FrameLayout><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Delete"android:onClick="delete"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"android:layout_marginTop="8dp"app:layout_constraintTop_toBottomOf="@+id/button"android:id="@+id/button2" /><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="replace"android:text="replace"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"android:layout_marginTop="0dp"app:layout_constraintTop_toBottomOf="@+id/button2" /></android.support.constraint.ConstraintLayout>

页面二java文件

package com.hala.view01;import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);}public void click(View v){//这里的处理方式类似于数据库对事务的处理方式,注意要选择v4包里的FragmentManager fm=getSupportFragmentManager();FragmentTransaction ft=fm.beginTransaction();//这就是创建的Fragment的java文件那个类Fragment_test ft1=new Fragment_test();//第一个参数:main2Activity布局文件中FragmentLayout的id//第二个参数:创建的Fragment类,而这个类又加载了Fragment布局文件//第三个参数:tag 用来标记是哪个fragment,以便后边的删除操作ft.add(R.id.fl_fragment,ft1,"del");//这一步是提交事务步骤ft.commit();}public void delete(View v){FragmentManager supportFragmentManager = getSupportFragmentManager();FragmentTransaction ft= supportFragmentManager.beginTransaction();//这里可以根据id也可以根据tag来确定删除的对象ft.remove(supportFragmentManager.findFragmentByTag("del"));ft.commit();}public void replace(View v){FragmentManager fm=getSupportFragmentManager();FragmentTransaction ft=fm.beginTransaction();Fragment_test1 ft2=new Fragment_test1();//这里的第一个参数是要替换的Fragment或Activity的id//第二个参数是上边实例化的Fragment//第三个参数是tagft.replace(R.id.fl_fragment, ft2,"del");ft.commit();}
}

显示结果


添加操作

替换操作

删除操作

Fragment的隐藏与显示

hide与show的作用是优化界面,使得Fragment切换时不在重新构建

页面二布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.Main2Activity"><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Add"android:onClick="click"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginBottom="8dp"android:id="@+id/button" /><FrameLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/fl_fragment"></FrameLayout><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="hide"android:onClick="hide"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"android:layout_marginTop="8dp"app:layout_constraintTop_toBottomOf="@+id/button"android:id="@+id/button2" /><Button
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="show"android:text="show"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"android:layout_marginTop="0dp"app:layout_constraintTop_toBottomOf="@+id/button2" /></android.support.constraint.ConstraintLayout>

页面二java文件

package com.hala.view01;import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);}public void click(View v){//这里的处理方式类似于数据库对事务的处理方式,注意要选择v4包里的FragmentManager fm=getSupportFragmentManager();FragmentTransaction ft=fm.beginTransaction();//这就是创建的Fragment的java文件那个类Fragment_test ft1=new Fragment_test();//第一个参数:main2Activity布局文件中FragmentLayout的id//第二个参数:创建的Fragment类,而这个类又加载了Fragment布局文件//第三个参数:tag 用来标记是哪个fragment,以便后边的删除操作ft.add(R.id.fl_fragment,ft1,"del");//这一步是提交事务步骤ft.commit();}//hide和show只是让Fragment隐藏或显示,并没有删除,没有改变其数据public void hide(View v){FragmentManager supportFragmentManager = getSupportFragmentManager();FragmentTransaction ft= supportFragmentManager.beginTransaction();//这里可以根据id也可以根据tag来确定删除的对象ft.hide(supportFragmentManager.findFragmentByTag("del"));ft.commit();}public void show(View v){FragmentManager supportFragmentManager = getSupportFragmentManager();FragmentTransaction ft= supportFragmentManager.beginTransaction();//这里可以根据id也可以根据tag来确定删除的对象ft.show(supportFragmentManager.findFragmentByTag("del"));ft.commit();}
}

Fragment间的信息传递

页面一的按钮触发页面二,页面二的Fragment加载了第一个Fragment,第一个Fragment的按钮可以将信息传到第二个Fragment上,并替换为第二个Fragment

第一个页面布局文件 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.MainActivity"><Button
        android:id="@+id/bt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="8dp"app:layout_constraintRight_toRightOf="parent"android:layout_marginLeft="8dp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginBottom="8dp"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="8dp"android:text="Fragment数据传递"android:onClick="click"/></android.support.constraint.ConstraintLayout>

第一个页面java文件 MainActivity.java

package com.hala.view01;import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.icu.util.Calendar;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View v){startActivity(new Intent(MainActivity.this,Main2Activity.class));}}

第二个页面布局文件 activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.hala.view01.Main2Activity"><FrameLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/fl_fragment"></FrameLayout></android.support.constraint.ConstraintLayout>

第二个页面java文件 Main2Activity.java

package com.hala.view01;import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class Main2Activity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);//简写方式 将第一个Fragment加载到第二页面上来getSupportFragmentManager().beginTransaction().add(R.id.fl_fragment,new Fragment_test()).commit();}}

第一个Fragment布局文件 layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:id="@+id/layout"><EditText
        android:id="@+id/et"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入"/><Button
        android:id="@+id/bt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="传递"android:onClick="send"/></LinearLayout>

第一个Fragment的java文件 Fragment_test.java

package com.hala.view01;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;public class Fragment_test extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View v= inflater.inflate(R.layout.layout,container,false);final EditText et=(EditText) v.findViewById(R.id.et);Button bt=(Button)v.findViewById(R.id.bt1);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Fragment_test1 ft=new Fragment_test1();//这里借助bundle传值与activity是一样的Bundle bd=new Bundle();bd.putString("key",et.getText().toString());ft.setArguments(bd);getFragmentManager().beginTransaction().replace(R.id.fl_fragment,ft,"test1").commit();}});return v;}}

第二个Fragment的布局文件 layout1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#ff0000"><TextView
        android:id="@+id/tv"android:layout_width="100dp"android:layout_height="100dp"android:text="Fragment" /></LinearLayout>

第二个Fragment的java文件 Fragment_test1

package com.hala.view01;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;/*** Created by air on 2018/1/28.*/public class Fragment_test1 extends Fragment {@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View v= inflater.inflate(R.layout.layout1,container,false);TextView tv=(TextView)v.findViewById(R.id.tv);tv.setText(getArguments().getString("key"));return v;}}

显示结果

Android 之路35---Fragment相关推荐

  1. Android 点将台:撒豆成兵[- Fragment -]

    个人所有文章整理在此篇,将陆续更新收录:知无涯,行者之路莫言终(我的编程之路) Fragment(碎片) 拥有生命周期,含有视图,可视可交互的界面 . 本文源码可见此处 1.Fragment和Acti ...

  2. android 动态生成fragment,Android动态加载fragment(fragment复用)

    [实例简介] Android动态加载fragment(fragment复用) [实例截图] [核心代码] fm_reuse └── fm_reuse ├── AndroidManifest.xml ├ ...

  3. 【Android开发】之Fragment与Acitvity通信

    上一篇我们讲到与Fragment有关的常用函数,既然Fragment被称为是"小Activity",现在我们来讲一下Fragment如何与Acitivity通信.如果上一篇还有不懂 ...

  4. Android攻城狮fragment

    1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...

  5. Android 之路30---UI基础控件

    导读 1.TextView 2.Button 3.Android各种控件的监听器 4.EditText 5.ImageView及ImageButton 6.Android 中Xml文件引用资源的方法 ...

  6. Android Tab大总结 Fragment+TabPageIndicator+ViewPager

    2019独角兽企业重金招聘Python工程师标准>>> 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24740 ...

  7. [Android] 使用Include布局+Fragment滑动切换屏幕

        前面的文章已经讲述了"随手拍"项目图像处理的技术部分,该篇文章主要是主界面的布局及屏幕滑动切换,并结合鸿洋大神的视频和郭神的第一行代码(强推两人Android博客),完成了 ...

  8. android onattach方法,Java Fragment.onAttach方法代码示例

    import android.support.v4.app.Fragment; //导入方法依赖的package包/类 private void testBindToLifecycle(Lifecyc ...

  9. android fragmentactivity fragment,Android:Activity与Fragment通信(99%)完美解决方案

    前言 最近一直在想着能否有一种更好的方案来解决:Android中Activity与Fragment之间通信的问题,什么叫更好呢,就是能让Fragment的复用性高,性能还有好(不用反射),代码还要好维 ...

  10. android中viewpager+fragment,Android开发之ViewPager+Fragment

    使用步骤 1.Activity的布局文件 android:id="@+id/viewpager" android:layout_width="wrap_content&q ...

最新文章

  1. 研读pytorch版本的BERT分类代码
  2. 最短路问题的原始对偶算法形式
  3. Java反射机制及API使用
  4. Event and Delegate
  5. 【离散数学中的数据结构与算法】十一 错排问题
  6. ext get id js_【翻译】Ext JS最新技巧——2015-8-11
  7. 微课--Python生成器函数定义与使用(19分钟)
  8. 什么样的人不适合互联网创业
  9. 最小环(【CCF】NOI Online能力测试 提高组第三题)
  10. (亲测有效).net framework 在计算机上已安装了更高的 4.x 版本,则无法安装以前的 4.5 版本。
  11. python语言实验——某年某月的天数 OJ1160
  12. 安全体系建设-基础安全
  13. STM32 HAL库函数学习 UART篇
  14. flacs 安装教程_002.Nginx安装及启动
  15. Git分支的作用与使用
  16. Android - Broadcast
  17. web自定义相机拍照
  18. Django和Flask区别
  19. Shader 学习笔记:杂记
  20. COSCon'19 女性参与开源论坛 ---女性,让开源社区更浪漫!

热门文章

  1. 江西省高考计算机试题及答案,2016年江西省信息技术高考真题(附答案) - 图文...
  2. AlertPay网银
  3. e签宝再获巨额融资,电子签赛道百亿规模后能冲多远?
  4. 怎样与项目中的“怪人”沟通
  5. zookeeper 企业面试真题
  6. 如何针对数据中心进行安全疏散和消防应急管理
  7. 磁共振线圈分类_核磁线圈的基本架构及各部分主要功能
  8. c语言 输入1-7之间的一个整数,然后根据输入的数字判断是星期几,最后输出对应的星期的全称。如输入3,则输出Wednesday。
  9. Scala基础教程--10--数组列表与函数式编程
  10. 做生产智能供料系统公司排名