精华内容
下载资源
问答
  • 事实对象 将三元组转换为 JSON 对象,将 JSON 对象转换为三元组。 与 factis 包很好地配合使用
  • 归属手机号生成配合yj全自动
  • 针对电磁继电器吸力与反力的配合,需要分析装配尺寸的主要参数及其公差的...合理设计关键尺寸的公差,提高继电器吸合与释放的概率,使继电器吸力与反力更好地配合,为继电器免校正的推广提供一套切实可行的公差分析技术。
  • 机械公差配合.ppt

    2020-01-19 14:05:41
    公差与配合是机械类专业技术基础课,它是将公差配合和计量学有机结合在一起,从互换性角度出发,围绕误差与公差这两个概念来研究如何解决使用要求与制造要求的矛盾,而这一矛盾的解决是合理确定公差配合和采用适当...
  • 轴承配合

    千次阅读 2009-06-02 11:50:00
    轴承配合的目的在于使轴承内圈或外圈牢固与轴或外壳固定,以免在相互配合面上出现不利的轴向滑动。这种不利的轴向滑动(称做蠕变)会引起异常发热、配合面磨损(进而使磨损铁粉侵入轴承内部)以及振动等问题,使...
    轴承配合的目的在于使轴承内圈或外圈牢固地与轴或外壳固定,以免在相互配合面上出现不利的轴向滑动。

    这种不利的轴向滑动(称做蠕变)会引起异常发热、配合面磨损(进而使磨损铁粉侵入轴承内部)以及振动等问题,使轴承不能充分发挥作用。

    因此对于轴承来说,由于承受负荷旋转,一般必须让套圈带上过盈使之牢固地与轴或外壳固定。

    轴及外壳的尺寸公差

    公制系列的轴及外壳孔的尺寸公差已由GB/T275-93《滚动轴承与轴和外壳的配合》标准化,从中选定尺寸公差即可确定轴承与轴或外壳的配合。

    配合的选择

    配合的选择一般按下述原则进行。

    根据作用于轴承的负荷方向、性质及内外圈的哪一方旋转,则各套圈所承受的负荷可分为旋转负荷、静止负荷或不定向负荷。承受旋转负荷及不定向负荷的套圈应取静配合(过盈配合),承受静止负荷的套圈,可取过渡配合或动配合(游隙配合)。

    轴承负荷大或承受振动、冲击负荷时,其过盈须增大。采用空心轴、薄壁轴承箱或轻合金、塑料制轴承箱时,也须增大过盈量。

    要求保持高旋转时,须采用高精度轴承,并提高轴及轴承箱的尺寸精度,避免过盈过大。如果过盈太大,可能使轴或轴承箱的几何形状精度影响轴承套圈的几何形状,从而损害轴承的旋转精度。

    非分离型轴承(例如深沟球轴承)内外圈都采用静配合,则轴承安装、拆卸极为不便,最好将内外圈的某一方采用动配合。

    1)负荷性质的影响
    轴承负荷根据其性质可分为内圈旋转负荷、外圈旋转负荷及不定向负荷,其与配合的关系参照轴承配合标准。

    2)负荷大小的影响

    内圈在径向负荷作用下,半径方向即被压缩又有年伸展,周长趋于微小增加因此初始过盈将减少。过盈减少量可由下式计算:

    这里:
      ⊿dF:内圈的过盈减少量,mm
      d:轴承公称内径,mm
      B:内圈公称宽度,mm
      Fr:径向负荷,N{kgf}
      Co:基本额定静负荷,N{kgf}

    因此,当径向负荷为重负荷(超过Co值的25%)时,配合必须比轻负荷时紧。

    若是冲击负荷,配合必须更紧。

    3)配合面粗糙度的影响

    若考虑配合面的塑性变形,则配合后的有效过盈受配合面加工质量的影响,近似地可用下式表示:

    [磨削轴]
              ⊿deff=(d/(d+2))*⊿d......(3)
    [车削轴]
              ⊿deff=(d/(d+3))*⊿d......(4)

    这里:
       ⊿deff:有效过盈,mm
       ⊿d:视在过盈,mm
        d:轴承公称内径,mm

    4)温度的影响

    一般来说,动转时的轴承温度高于周边温度,而且轴承带负荷旋转时,内圈温度高于轴温,因此热膨胀将使有效过盈减少。

    现设轴承内部与外壳周边的温差为⊿t 则不妨可假定内圈与轴在配合面的温差近似地为(0.01-0.15)⊿t 。因此温差产生的过盈减少量⊿dt可由式5计算:

          ⊿dt=(0.10 to 0.15)⊿t*α*d
            ≒0.0015⊿t*d*0.01......(5)

    这里:
       ⊿dt:温差产生的过盈减少量,mm
       ⊿t:轴承内部与外壳周边的温差,℃
       α:轴承钢的线膨胀系数,(12.5×10-6)1/℃
       d:轴承公称内径,mm

    因此,当轴承温度高于轴温时,配合必须紧。

    另外,在外圈与外壳之间,由于温差或线膨胀系数的不同,反过来有时过盈也会增加。因此在考虑利用外圈与外壳配合面之间的滑动避让轴的热膨胀时,需要加以注意。

    5)配合产生的轴承内部最大应力

    轴承采用过盈配合安装时,套圈时会膨胀或收缩,从而产生应力。

    应力过大时,有时套圈会破裂,需要加以注意。

    配合产生的轴承内部最大应力可由表2的式子计算。作为参考值,取最大过盈不超过轴径的1/1000,或由表2的计算式得到的最大应力σ不大于120Mpa{12kgf/mm2}为安全。
    表2 配合产生的轴承内部最大应力

    这里:
       σ:最大应力,MPa{kgf/mm2}
       d:轴承公称内径(轴径),mm
       Di:内圈滚道直径,mm
         球轴承……Di=0.2(D+4d)
         滚子轴承……Di=0.25(D+3d)
       ⊿deff:内圈的有效过盈,mm
       do:中空轴半径,mm
       De:外滚道直径,mm
         球轴承……De=0.2(4D+d)
         滚子轴承……De=0.25(3D+d)
       D:轴承公称外径(外壳孔径),mm
       ⊿deff:外圈的有效过盈,mm
       Dh:外壳外径,mm
       E:弹性模量,2.08×105MPa{21 200kgf/mm2}

    6)其他

    精确性要求特别高时,应提高轴与外壳的精度。与轴相比,一般外壳难加工、精度低,因此放松外圈与外壳的配合为宜。

    采用中空轴及薄壁外壳时,配合必须比通常紧。

    采用双半型外壳时,应放松与外圈的配合。对于铸铝或轻合金外壳,配合必须比通常紧一些
    轴承内孔是基孔制。所以配合的轴只要采用标准公差即可。如果是过渡配合,可以用js6,js5。如果要更大的过盈量,可以考虑采用n6,n5的公差带。轴承内孔虽然采用基孔制,但为了避免轴的尺寸在下公差时产生装配间隙,故轴承内孔的公差带不在零位,而是偏负。轴承外圈也是同样的道理,采用的是基轴制配合。
    这也要根据轴承的大小来决定的,如果轴承很大,也要弄过盈配合的话,那你装的时候得把工人累死.万一有问题再拆下来就更累了...我有过这样的教训,基本上孔的公差给H级或者JS都可以的.根据经验定就行了.手册上有些东西不能造搬的.得考虑实际工作情况,比如定位啊,载荷之类的
    展开全文
  • Docker总结(配合阿里云容器镜像服务)

    万次阅读 多人点赞 2019-04-09 16:34:40
    总体来说,Docker 的接口相当简单,用户可以方便创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。 注册服务器(repository),仓库(registry),镜像...

    Docker是个很好的工具,刚开始用觉得还没虚拟环境好用,随着深入了解,越发觉得Docker好用,今天就来总结一下使用心得。

    一、Docker基础

    1、背景知识

    1)docker是什么?

          Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

    Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

    注册服务器(repository),仓库(registry),镜像(image),容器(container)之间的关系:注册服务器主要是用来存放仓库的服务器,在一个服务器上有多个仓库,而仓库又可以分为公共仓库和私有仓库,一个仓库里面有可以有多个镜像,而容器则是镜像的一个实例

        下图是docker组件:

    图3

          Docker之所以火的很快,原因之一就是它的仓库。仓库类似于github,很多现成的镜像供各位下载,直接用docker pull redis-server(这个名字是瞎起的)就可以拉下来一个redis服务器的镜像,放到自己的docker里就能用了,不用自己解决依赖、安装redis。好多开源工具都有docker镜像,这就使得用户只需要下载使用就行,完全省去了处理软件依赖、缺少库文件、安装部署等环节。

    2) docker用途,目前有三大类

    (1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

    (2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

    (3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

    2、docker安装:

    1)Windows安装,推荐使用win10,参考我的另一篇博客---windows10安装docker以及挂在在pycharm

    2)Mac安装,参考博客---Mac平台上Docker安装与使用

    3)  Centos安装

        在centos下,如果有epel源直接yum install docker-io就完成安装了。

        图2

        /etc/init.d/docker start启动docker。

    4)Ubuntu安装

        sudo apt-get remove debian-keyringdebian-archive-keyring

        sudo apt-get clean

        sudo apt-get update && sudo apt-get-y install debian-keyring debian-archive-keyring

        wget -qO- https://get.Docker.com/ | sh

        注:如果ubuntu启用了ufw,要配置使其能转发请求,并允许2375端口访问外网。

    3、docker命令

    在知道docker命令之前,有必要弄清楚镜像和容器的差别,简单来说,镜像(Image)就是一堆只读层(read-only layer)的统一视角; 容器 = 镜像 + 读写层

    详细可参考我的另一篇文章---docker容器和镜像区别

    以下命令最好使用管理员权限运行,避免出错。

    1、镜像

    1)获取镜像:docker pull  images-name

    2)查看所有镜像:docker images 

    3)删除镜像:docker rmi image-id

    4)保存镜像:docker commit -m="description about images" --author="author" {container_id}  {repository/images_name:tag}

    5)推送镜像到代码仓库(可以后面的阅读完在看这个),以阿里云docker平台为例:

    ①  docker login --username=your_username registry.cn-beijing.aliyuncs.com
    ②  docker tag [ImageId] registry.cn-beijing.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
    ③  docker push registry.cn-beijing.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]

    6)使用Dockerfile创建新的镜像(注意:末尾有一个点,表示当前路径):docker build -t "repository/images_name:tag" .    

    2、容器


    docker start 容器id
    docker stop 容器id
    docker exec -it 容器id /bin/bash  # 进入容器
    docker cp 宿主机绝对路径  容器id:路径   # 宿主机和docker容器之间复制文件 

    # 关于删除容器:

    方法一:

    #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,

    sudo docker ps -a|grep Exited|awk '{print $1}'

    #查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器

    sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

    方法二: 

    #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

    sudo docker rm $(sudo docker ps -a -q)

    方法三:

    #根据容器的状态,删除Exited状态的容器

    sudo docker rm $(sudo docker ps -qf status=exited)

    方法四:

    #Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。

    sudo docker container prune  (推荐)

    图5

    指定映射最常用的是第一种,直接指定宿主端口:容器端口;

    第二种,假如宿主有多个ip的话,让容器的端口绑定到宿主的固定一个ip的端口上;

    第三种,只绑定宿主ip,端口随机取;

    第四种,它的意思是一条docker run命令可以同时用多次”-p”参数,指定多个端口映射关系,比如,docker run –d –p 99:80 –p 33:443 –name mynginx33 nginx

    启动容器时用-P(大写)参数,表示让容器随机对应一个宿主机的端口,如上,容器的80端口对应宿主的32768端口,容器的443对应宿主的32769端口。

    比如我的宿主ip是192.168.0.55,这时候在宿主机的浏览器输入192.168.0.55:32768就可以访问到docker容器里的nginx应用了。

    端口随机映射的好处是:端口不会冲突。难点是,生产中还得用脚本或者其他方式获取到这个随机的端口,由于它是变化的,所以脚本必须得适应这种变化性。

    图6

    用小p来手动指定端口映射,如上所示,将容器的80端口映射到宿主的91端口上,而443没有指定映射关系,所以443不可访问。

    二、制作自己的Docker镜像

    自己制作的docker我都推送到了阿里云docker管理平台了,而不是推送到docker官方的管理平台。下面首先介绍一下使用阿里云docker管理平台创建自己的仓库。

    1、阿里云docker管理平台创建仓库

    1)进入阿里云镜像服务控制台,新建镜像仓库,如图

    2)新建仓库弹窗,一步一步按提示填,注意,设置代码源可以使用github,阿里云code等等,这里我使用的是阿里云code,后面可以使用项目里面的Dockerfile自动生成镜像,具体步骤下面会详细介绍

    3)新建完之后,会有镜像仓库列表,显示镜像仓库信息

    4)点击管理,基本信息,会有各个命令提示:

    登录阿里云docker registry:

      $ sudo docker login --username=  registry.cn-beijing.aliyuncs.com
    

    登录registry的用户名是您的阿里云账号全名,密码是您开通服务时设置的密码。

    你可以在镜像管理首页点击右上角按钮修改docker login密码。

    从registry中拉取镜像:

      $ sudo docker pull registry.cn-beijing.aliyuncs.com/spencer_docker/django2:[镜像版本号]
    

    将镜像推送到registry:

      $ sudo docker login --username= registry.cn-beijing.aliyuncs.com
      $ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/spencer_docker/django2:[镜像版本号]
      $ sudo docker push registry.cn-beijing.aliyuncs.com/spencer_docker/django2:[镜像版本号]
    

    其中[ImageId],[镜像版本号]请你根据自己的镜像信息进行填写。

    2、手动构建Docker镜像

    这种方法就是根据docker镜像为基础镜像来创建容器,然后运行容器,在容器中安装自己需要的包,然后再提交(commit)一下,推送(push)到自己的镜像仓库就ok了。

    下面以一个Ubuntu:16.04为例,更改为自己的python3.6+django2.0镜像,由于三个版本(v1,v2,v3)都是使用的原始的Ubuntu:16.04,所以三种生成进行镜像方法介绍完之后再以一个版本为例介绍docker环境配置。

    1)拉取Ubuntu:16.04官方镜像:

    2)进入镜像,变为容器,随便安装一些包

    3)退出容器,exit,提交镜像(命令可以看本博客命令部分的镜像命令)

    如图,上图提交命令解释:

    ① -m是对提交的描述,author是作者(选填),后面的c28e5976a6ab是修改容器的id,后面的是新镜像名字和标签(tag)。

    ② 成功之后,会生成新的镜像id

    ③ 输入docker images 查看镜像,会发现新的名为spencer/django,标签为v1的镜像已经存在。

    4)推送到阿里云docker管理平台,命令参考上面将镜像推送到阿里云registry

    5)打开阿里云镜像服务控制台,进入镜像仓库列表-->管理-->镜像版本,如下图,版本,镜像id,和本地推送上来的版本,镜像id一样

    6)删除本地images,拉取阿里云docker镜像管理台镜像,如下图

    3、利用Dockerfile构建Docker镜像

      由Dockerfile自动构建镜像,其实就是把手动构建的命令逐行写入一个“脚本”里,只不过这个脚本有自己的语法,如下图

    wKioL1fkFjbCb5-DAAMG1r9ceFY874.png

    1)现在在本地创建一个Dockerfile文件,如图,touch Dickerfile

    2)使用Dockerfile生成镜像,注意:

         ① 如果是手动创建的话,不要创建txt文件,不然本地使用Dockerfile生成docker镜像的是,会报找不到的错误,

         ② 创建命令:docker build -t "repository/images_name:tag" .   

             新建镜像最好在Dockerfile当前路径下面创建,末尾可以用点表示,如果不是在当前路径,需要使用绝对路径

    3)推送到阿里云docker管理平台,如下图

    4、利用阿里云镜像平台的代码源Dockerfile构建docker镜像

       可以将Dockerfile文件放在项目里面,然后利用阿里云镜像平台自动生成镜像功能,生成镜像,生成之后可以直接在本地拉取远程镜像。

      1)可以在阿里云codegithub,等代码管理平台,创建项目,然后将自己的Dockerfile放大项目,推送到远程代码管理平台,然后绑定到阿里云镜像仓库,在创建镜像仓库的时候,设置代码源的选项,设置到Dockerfile文件路径下面就行,具体项目代码不再展示,如下图

    2)进入镜像列表-->管理-->构建-->立即构建,注意:构建设置里面要设置对的Dockefile路径,不然会构建失败。

    3)构建成功,查看镜像,拉取镜像到本地

    点击镜像版本,如图,构建成功

    本地拉取镜像,如图

    注意:建议大家使用dockerfile创建镜像,因为启动镜像,在容器内安装包再commit ,每一次ocmmit都相当于多了一层,这样会导致镜像占用空间比较大而且臃肿,推荐使用dockerfile创建镜像,把多个安装包的步骤放在一个RUN里面,使用&&连接,这样安装多个包相当于在一层中,详细可参考《从入门到实践2》一书,讲解的很到位,下面是百度云盘的链接,有需要的朋友可以拿走。

    https://pan.baidu.com/s/1QLsprDiB_fz_r06m_HcKfQ

    5、docker环境配置python3.6+django2.0

         其实docker镜像包都是可以通过Dockerfile一次性部署的,我在研究的时候分开了弄,走一遍流程,这样写到dockerfile中保证不会出错。接下来就是我研究过程,博友们不必看,就是简单的安装一些依赖包的过程

        因为我构建的镜像是以ubuntu为基础,ubuntu原始安装命令是apt-get install 

    1)更新apt-get install 

         命令:apt-get update

    2)安装Python3.6

    说明一下:目前通过 apt-get install python3直接安装的是Python3.5版本,因为python3.6(apt-get install python3.6是无效的)是最新版本,所以只能先安装Python3.5然后升级到3.6。倘若Python3.6全部完善之后出来Python3.7,3.8,3.9等等,这样就可以直接通过apt-get install python3安装3.6了。

    ①安装Python3 ,安装成功之后,输入python3,会显示Python3.5的交互环境

    命令:

    apt-get install python3

    ②安装Python3.6的需求包

    命令:

    apt-get install software-properties-common

    ③添加Python3.6

    命令:

    add-apt-repository ppa:jonathonf/python-3.6

    ④更新apt-get 

    命令:

    apt-get update
    

    安装Python3.6,

    命令:

    apt-get install python3.6

    ⑥安装成功之后输入Python3依旧是Python3.5的交互环境,这样很不方便,接下来就是实现输入Python直接进入到Python3.6的交互环境,如下图:

    第一步:which python3 ---查看Python3.5安装在何处

    第二步:更改软链接,输入Python默认启动Python3.5,命令:ln -s /usr/bin/python3.6 /usr/bin/python

    第三步:更改默认启动为Python3.6,注意第三条命令最后的一个2,这个是排序,只要python3.6的排序比3.5的高就行,命令:

               update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

    3)安装pip

    ①安装pip3

    命令:

    apt-get install python3-pip

    ②更新pip3为pip,并升级

    命令:

    pip3 install --upgrade pip

    4)升级python-dev

    起初并不知道这个还需要升级,因为他原本的dev是Python3-dev,但是安装一些包的时候老是报如下错误:

    Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='........

    找了n久,才发现是这个原因,之前安装原本的dev是Python3-dev,要升级到Python3.6-dev,如下图

    命令:

    apt-get install python3.6-dev

    5)批量安装依赖包

         把需要安装的依赖放到一个名为requerments的文件中,然后使用命令 pip install -r requerments,批量安装依赖包

    命令:

    pip install -r requerments

    展开全文
  • 利用ANSYS workbench软件对微型电机转子的过盈配合进行静态和动态的有限元分析,得出不同转速下离心力对转子配合性能的影响,根据分析结果和企业的实际工艺能力,合理确定了转子的配合公差。为微型电机转子的结构设计...
  • 为了获得技术经济要求的砌筑砂浆配合比,在分析《砌筑砂浆配合比设计规程》(JGJ/T98-2010)的主要修订内容及其修订...按该法设计砌筑砂浆配合比,既满足砂浆的设计技术指标,又能较充分利用砂浆原材料的性能,是可行的。
  • 首先定义一个handler private final Handler handler = new Handler(); 然后将功能模块封装在Runnable中 private final Runnable task = new Runnable() { public void run() { // TODO Auto-gen

    首先定义一个handler

     private final Handler handler = new Handler();

    然后将功能模块封装在Runnable中

    private final Runnable task = new Runnable() {  
    			  
    	        public void run() {  
    	            // TODO Auto-generated method stub  
    	            if (auto) {  //change to refresh if it is auto mod
    	                handler.postDelayed(this, 10000);  
    	               
    	              /*
                             这里写你的功能模块代码
                                 */
    	               
    	                
    	            }  
    	            
    	        }  
    	    };  

    最后,你希望在哪里开始这种循环,就在那个位置加入这段代码即可

    handler.postDelayed(task, 1000); 


    注意:postDelay中的1秒表示程序运行到此处延迟一秒开启这个handler

    而Runnable中的10秒表示每隔10秒执行一次你的功能模块;

    这个方法的弊端是一旦执行没有办法停止,直至程序退出。



    展开全文
  • 动态加载fragment配合TabLayout

    千次阅读 2016-12-18 16:54:29
    这种配合使用TabLayout来控制,获取position比较方便,fragment不需要一次性全部加载,而是在第一次使用的时候加载。也需要WindowManager和事务进行管理。因为没有用到ViewPager,所以没有滑动效果。比较适合做程序...

    这种配合使用TabLayout来控制,获取position比较方便,fragment不需要一次性全部加载,而是在第一次使用的时候加载。也需要WindowManager和事务进行管理。因为没有用到ViewPager,所以没有滑动效果。比较适合做程序大分类主要框架。

    一、MyFragment

    /**
     * A simple {@link Fragment} subclass.
     */
    public class MyFragment extends Fragment {
        private TextView textView;
    
        public MyFragment() {
            // Required empty public constructor
        }
    
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View view = inflater.inflate(R.layout.fragment_my, container, false);
            initView(view);
            return view;
        }
    
        private void initView(View view) {
            String title= (String) getArguments().get("title");
            textView= (TextView) view.findViewById(R.id.txt_title);
            textView.setText(title);
        }
    
    }

    二、TabFragmentActivity 

    /**
     * 动态加载fragment,配合TabLayout
     */
    public class TabFragmentActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener {
        private TabLayout tabLayout;
        private Fragment[] fragments;
        private String[] titles = {"天九", "地八", "人七", "和五"};
        private int position;
        FragmentManager fragmentManager;//获取fragment管理器
        FragmentTransaction fragmentTransaction;//获取事务
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tab_fragment);
            initView();
        }
    
        /**
         * 初始化
         */
        private void initView() {
            fragmentManager = getSupportFragmentManager();//获取fragment管理器
            fragments = new Fragment[titles.length];
            tabLayout = (TabLayout) findViewById(R.id.tab_nav);
            tabLayout.setOnTabSelectedListener(this);//这一句监听放在添加tab之前,才可以默认加载第一页
            //添加tab
            for (int i = 0; i < titles.length; i++) {
                TabLayout.Tab tab = tabLayout.newTab();
                tab.setText(titles[i]);
                tab.setIcon(R.mipmap.ic_launcher);
                tabLayout.addTab(tab, i, i == position);//这一句要先有监听才能选中fragment
            }
        }
    
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            //刚进来没有执行
            Fragment fragmentFrom = fragments[position];//获取当前显示的fragment
            Fragment fragmentTo = (Fragment) tab.getTag();
            if (fragmentTo == null) {
                fragmentTo = getItem(tab.getPosition());
                tab.setTag(fragmentTo);
            }
            position = tab.getPosition();//给position赋新值
            switchFragment(fragmentFrom, fragmentTo);
        }
    
        /**
         * 切换显示fragment
         *
         * @param fragmentFrom
         * @param fragmentTo
         */
        private void switchFragment(Fragment fragmentFrom, Fragment fragmentTo) {
            fragmentTransaction = fragmentManager.beginTransaction();//获取事务
            //隐藏from
            if (fragmentFrom != null) {
                fragmentTransaction.hide(fragmentFrom);
            }
            //先查找fragmentTo是否已经被装载
            Fragment fragment = fragmentManager.findFragmentByTag(fragmentTo.getClass().getName());
            //如果fragmentTo不存在就装载,存在就显示
            if (fragment == null) {
                fragmentTransaction.add(R.id.frame_container, fragmentTo);
            } else {
                fragmentTransaction.show(fragmentTo);
            }
            fragmentTransaction.commit();
        }
    
        /**
         * 创建fragment
         *
         * @param position
         * @return
         */
        private Fragment getItem(int position) {
            Fragment fragment = new MyFragment();
            Bundle bundle = new Bundle();
            bundle.putString("title", titles[position]);
            fragment.setArguments(bundle);
            fragments[position] = fragment;
            return fragment;
        }
    
        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
    
        }
    
        @Override
        public void onTabReselected(TabLayout.Tab tab) {
    
        }
    }


    展开全文
  • 如何做好团队的配合

    万次阅读 2008-04-02 20:11:00
    如何做好团队的配合二零零七年五月在公司新员工培训上的讲话 我们打球、玩游戏,以及参加一些团体性的活动,甚至在看球赛等节目的时候,都时常能听到“团队配合”。 那么,什么叫团队配合?身为团队中一员的我该...
  • 小巧的 mock 服务器,配合 Chrome 插件可以轻松拦截或 mock 页面上的 xhr/jsonp/fetch 请求。不需要侵入页面本身代码,让前端同学在后端接口没有 ready 或者难以模拟数据的时候,继续开心开发玩耍 .
  • 对比和评价了用分子力学MM+法和半...PM3方法可以较好模拟所考察的各种类型铜配合物,预计四配位配合物的Cu—N键和Cu—O键的偏差分别为(3.26±0.023)%和(2.77±0.023)%。而3+1+1型配合物的该偏差分别为(5.18±0.032)
  • 本文讨论了混配配合物中配体间各种可能的相互作用,正是这些作用极大影响、丰富了配合物的性质.
  • Zotero使用指南02:配合Word

    千次阅读 2020-09-07 22:41:31
    转载Zotero使用指南02:配合Word Zotero是一款广受好评的文献管理软件,其具有四大优点:首先是开源免费,源代码托管在Github平台。其次,其软件界面基于浏览器内核,支持Windows, MacOS, Linux多种操作系统。此外,...
  • 首先根据结合直径确定国家标准推荐的优先和 常用配合过盈量的数学期望和方差,计算给定设计条件下各种配合的可靠度,在此基础上选择能够经济满足可靠性要求的配合.此外,对影响过盈联接可靠性的基本因素进行分析,针对...
  • 机械公差与配合 常见问题

    千次阅读 2018-06-02 20:01:21
    H6或H7配合时是过盈配合,与H8孔配合时则为过渡配合。对非铁类零件,为较轻的压入配合,当需要时易于拆卸。对钢、铸铁或铜、钢组件装配是标准压入配合。 44.轴的 基本偏差为 r 时, 配合特性是什么? 答:属过盈...
  • Swagger和Python配合使用

    万次阅读 2018-08-12 17:51:36
    另一方面,它能提供测试界面,我们只需要在网页上填写相应的参数,点击调用(网页由swagger生成),就可以轻松调用接口,使 得服务端的开发者,不使用客户端,就可以完整调试代码。 2. Python & Flask & ...
  • 渐开线型花健轴与花键套配合,日趋广泛用于汽车、机车的变速机构中,其配合的互换性问题尚未引起应有的重视。这类配合的互换性不同于单一线值尺寸配合,不能用线值尺寸链的计葬方法验算。本文以生产中的实例探讨多...
  • 双核 Cu(I) 配合物的合成与晶体结构研究,丁彩霞,洪涛,2,2'-二吡啶胺配体由于其具有多个配位原子且能有效螯合金属离子,在配合物的合成中被广泛的应用。本文在2,2'-二吡啶胺分子上引入�
  • Git与SVN配合使用

    千次阅读 2009-11-03 16:09:00
    Git与SVN配合使用Jingwenlai 2009-11-3版本管理工具对于开发来说很重要,可以保留一些重要的历史记录,在分支比较工具的帮助下,可以有效帮助多人开发。当前主要的版本管理有: Microsoft VSS,CVS,SVN,Git, 另外...
  • :探讨支撑喉镜下显微手术的护理配合。方法 :回顾性分析声带息肉、声带小结、声带囊肿 患者316例患者手术资料。结果 :全组患者麻醉及手术过程均平稳安全,术后病人恢复良好,症状改善 理想。结论 :积极有效的护理...
  • 如何处理好项目成员不配合的问题

    千次阅读 2016-12-16 15:00:27
    项目成员不配合的事情,经常发生,也是最让人头疼的事情。作为一名项目经理该如何好项目成员不配合的问题呢?造成项目成员不配合的原因有很多,难以一一罗列。一般可以从这些方面来考虑,项目经理能力不足、公司授予...
  • 对于linux socket与epoll配合相关的一些心得记录 没有多少高深的东西,全当记录,虽然简单,但是没有做过测试还是挺容易让人糊涂的 int nRecvBuf=32*1024;//设置为32K setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const ...
  • 用氯化铕与水杨酸(Hsal)、邻菲罗啉(Phen)在乙醇溶液中反应,合成了稀土配合物[Eu(Phen)(Sal)3],研究了该配合物的IR、uV、TGA、元素分析及光致发光性能。...能有效传递给中心Eu3+,发出强的Eu3+的特征荧光。
  • 配合的下属该如何应付

    千次阅读 2014-08-14 10:15:26
    工作的艰辛和不如意,他们的感叹大多有以下几个方面:一是与上司没有搞好关系,导致上司不但不赏识自己的工作,而且还经常给小鞋让我们穿,二就是与相关部门的同事搞不好关系,同事不支持不配合工作,导致部门工作...
  • Java并发编程--CountDownLatch配合线程池

    千次阅读 2016-04-30 18:06:53
    Java并发编程–CountDownLatch配合线程池 在处理一些耗时操作的时候,我们习惯上会把它放在子线程里面做,是的如果允许(我是指操作的内容),为了更快速完成这堆操作,线程池是一个不错的选择。等等,好像有点...
  • 结果表明,所制备的配合物为纳米颗粒,聚(乙烯基吡咯烷酮)的存在能有效抑制配合物团聚而形成大的颗粒。对纳米稀土配合物的荧光性质研究发现,在紫外光激发下,这两种纳米配合物能分别发射Eu3+和Tb3+离子的特征荧光,...
  • Golang channel和select配合使用

    千次阅读 2018-02-22 17:21:40
    *管道对象是引用类型,方法传值并不是值的拷贝,而是可以确切修改队列内容 */ if false { chan1 := make ( chan int ) chan2 := make ( chan int ) go test2(chan1, chan2) for { select ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 362,505
精华内容 145,002
关键字:

怎么地配合