当前位置: 首页 > news >正文

自建网站做网上超市可行吗网站建设信息公开和解读回应

自建网站做网上超市可行吗,网站建设信息公开和解读回应,品牌注册号,北京网站搭建服务我想大家对Fragment都不陌生,它作为界面碎片被使用在Activity中,如果只是更换Activity中的一小部分界面,是没有必要再重新打开一个新的Activity的。有时,即使要更换完整的UI布局,也可以使用Fragment来切换界面。 何…

我想大家对Fragment都不陌生,它作为界面碎片被使用在Activity中,如果只是更换Activity中的一小部分界面,是没有必要再重新打开一个新的Activity的。有时,即使要更换完整的UI布局,也可以使用Fragment来切换界面。
WechatIMG11.jpeg
WechatIMG12.jpeg

何为流式切换

流式切换?不好意思,我给大家杜撰了一个词,所以大家陌生也很正常。简单的说,就是,点击下一步,下一步来按顺序更换界面的内容。你可以想象成是一个ArrayList。不过,大多数时候的Fragment界面切换都不是流式切换。比如底部的tab按钮,点击切换一个Fragment就不是流式切换。

效果演示

不管Fragment是否是流式切换,我们先看一个动画。
10_1683820132.gif
使用Dora SDK就可以很方便的实现这一效果,并且是不会有重叠现象的。待会我会讲解Fragment切换的标准写法。

如何使用Dora SDK的Fragment切换
// 添加以下代码到项目根目录下的build.gradle
allprojects {repositories {maven { url "https://jitpack.io" }}
}
// 添加以下代码到app模块的build.gradle
dependencies {implementation 'com.github.dora4:dora:1.0.106'
}

首先要添加Dora SDK的依赖,推荐使用最新版本的sdk,即1.0.106。然后继承并使用dora.BaseActivity和dora.BaseFragment。

package dora;import dora.util.IntentUtils;/*** 在Activity中切换多个Fragment时使用。*/
public interface PageSwitcher {/*** Fragment非流式切换之显示页面。*/void showPage(String key);/*** Fragment非流式切换之显示页面。*/void showPage(String key, IntentUtils.Extras extras);/*** Fragment流式切换之显示下一页。*/void nextPage();/*** Fragment流式切换之显示下一页。*/void nextPage(IntentUtils.Extras extras);
}

里面有一个关键的接口,名叫PageSwitcher。它是专门用来切换Activity中的Fragment的。showPage表示非流式切换,而nextPage则表示流式切换。BaseActivity和BaseFragment都实现了这个接口,所以你可以在Activity或Fragment的任意地方进行流式切换和非流式切换。Fragment很简单,继承BaseFragment就可以了。Activity重点来了,继承BaseActivity后可以重写这几个方法。

getFlowFragment(String key)
getFlowFragmentContainerId()
getFlowFragmentPageKeys()

重写getFlowFragment告诉框架key和fragment的映射关系。
重写getFlowFragmentContainerId()告诉框架哪部分布局区域需要更换Fragment内容。
如果你不重写这个方法,就会走以下方法,最终拿到的就是android.R.id.content,这个布局下面就是我们自己定义的界面的根布局。

private int getDefaultFlowFragmentContainerId() {int defFragmentId = getFlowFragmentContainerId();if (defFragmentId != 0) {return getFlowFragmentContainerId();} else {return android.R.id.content;}
}

重写getFlowFragmentPageKeys()告诉框架所有key的顺序,它返回一个数组,数组中key的顺序就是fragment的排列顺序。
调用nextPage()就会按顺序,从第一个Fragment切换到最后一个Fragment,切换到最后一个为止。如果你需要更灵活的切换这些fragment,就需要使用showPage了,很简单吧。

无重叠切换Fragment的标准写法
  1. initFragments
private void initFragments() {if (xxxFragment == null) {xxxFragment = XxxFragment();FragmentUtils.add(getSupportFragmentManager(), xxxFragment, R.id.fragmentContainer);}if (yyyFragment == null) {yyyFragment = YyyFragment();FragmentUtils.add(getSupportFragmentManager(), yyyFragment, R.id.fragmentContainer);}if (zzzFragment == null) {zzzFragment = ZzzFragment();FragmentUtils.add(getSupportFragmentManager(), zzzFragment, R.id.fragmentContainer);}
}
  1. 隐藏activity中所有fragment
    调用BaseFragment中的hideFragments()来实现。以下为hideFragments源码。
protected void hideFragments(Collection<BaseFragment<?>> fragments) {if (fragments == null) {return;}for (BaseFragment<?> fragment : fragments) {FragmentUtils.hide(fragment);}
}
  1. 显示要显示的那个fragment
private void showXxxFragment() {hideFragments(allFragments);if (xxxFragment == null) {xxxFragment = new XxxFragment();FragmentUtils.add(getSupportFragmentManager(), xxxFragment, R.id.fragmentContainer);}FragmentUtils.show(xxxFragment);
}

这里加个fragment为null的判断是为了防止你忘记initFragments。

谈谈我的开源框架系列

我的开源框架总共有三条路线,dora为核心架构,dcache数据缓存方向,dview为自定义View系列,本篇也只是介绍dora框架的冰山一角,还有更多功能等你来探索。

http://www.hyszgw.com/news/79624.html

相关文章:

  • asp手机网站自动跳转企业网站主页素描模板
  • 做一个网站的详细教学网站开发智能化方向
  • 招聘网站怎么做线下活动昆明专业网站建设的公司
  • 乐陵网站制作做网站市场报价
  • erp软件免费版seo收录查询工具
  • 东莞专业做外贸网站wordpress注册跳转
  • 外国网站打开慢怎么办个人备案经营网站备案吗
  • 网站开发能用udp协议吗怎么制作网站链接
  • 服装网站建设基本流程外贸企业网站优化
  • 怎么做国内网站安居客西安网页版
  • 铁岭网站建设WordPress怎么改导航文字加小图标
  • 网站不稳定有什么影响网站腾讯备案
  • 河南外贸网站建设电子书籍网站开发
  • 什么直播可以做游戏视频网站吗天津设计公司
  • 企业网站虚假宣称iso9001的处罚案例网页设计与网站建设从入门到精通
  • 成都集团网站建设网站空白模板下载
  • 做一个网站的费用建设摩托车官网整车验证系统
  • 企业建设网站软件百度快速优化推广
  • 做企业网站的轻量级cms安装wordpress提示建立数据库连接时出错
  • 下载wordpress建站程序建设银行平潭招聘网站
  • 东莞网站设计邯郸市教育考试院
  • 家庭做网站网站可以做章子吗
  • 咸宁网站设计制作05网学霸
  • 上海教育网站建设网络工程可以从事什么工作
  • 深业资本有限公司网站建设现在推广平台哪家最好
  • 查企业的官方网站免费的网站给一个
  • 网站建设 运维 管理包括哪些如何用wordpress搭建录播课程
  • 网站春节放假杭州 电子商务网站建设
  • 百度做网站哪里可以学ppt网站链接怎么做
  • 上传网站安装教程网站开发费用如何入账