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

朝阳区网站建设推广seo/北京seo优化wyhseo

朝阳区网站建设推广seo,北京seo优化wyhseo,营销网课,网站首页一般做多大介绍因为在项目中需要用到 tab 滑动的效果所以参考了 android 4.0 contacts 的代码实现Contacts 首页分析首先看下首页的样式此处需要注意的是上下都是 actionbar,此处是通过在 AndroidManifest.xml 中对PeopleActivity设置了 android.uiOptions”splitActionBarWhe…

介绍

因为在项目中需要用到 tab 滑动的效果所以参考了 android 4.0 contacts 的代码实现

Contacts 首页分析

首先看下首页的样式

0818b9ca8b590ca3270a3433284dd417.png

此处需要注意的是上下都是 actionbar,此处是通过在 AndroidManifest.xml 中对PeopleActivity设置了 android.uiOptions=”splitActionBarWhenNarrow” 来达到的效果。

首页的显示是 PeopleActivity.java 这个来负责的。另外一个关键的类是ActionbarAdapter.java,下面针对于这两个类来展开介绍。

0818b9ca8b590ca3270a3433284dd417.png

PeopleActivity.java

具体的作用是:负责管理显示内嵌的fragment和view,此处需要考虑的是这个 activity 支持横竖屏两种显示模式,通过加载不同的layout 来实现不同屏幕上的显示效果。

关键变量

DefaultContactBrowseListFragmentmAllFragment - 所有联系人

ContactTileListFragment mFavoritesFragment- 我的最爱联系人

ContactTileFrequentFragmentmFrequentFragment - 2 panel 的时候显示

GroupBrowseListFragment mGroupsFragment - 组联系人

ContactsUnavailableFragmentmContactsUnavailableFragment - 表示当前不可用的 fragment,通过 set 不同的 text 来达到显示不同文字的效果

在 PeopleActivity.onAttachFragment() 中安装了 listener

TabPagerAdapter mTabPagerAdapter - 用来放置每个fragment

TabPagerListener mTabPagerListener - 用来监听 tag 的 scroll 和 select 的事件

显示

显示的流程

onCreate() 流程如下:

onCreate() -> createViewsAndFragments()-> invalidateOptionsMenuIfNeeded()

该流程只是创建了需要显示的 fragment(或者 view)和 menu,此时并没有显示出来。

onResume () 流程如下:

onResume() ->showContactsUnavailableFragmentIfNecessary() -> updateFragmentsVisibility()

判断正常显示,还是显示没有联系人数据时候的那个 fragment(mContactsUnavailableFragment)

showContactsUnavailableFragmentIfNecessary():根据 provider 的状态来决定是否要显示unavailable fragment

updateFragmentsVisibility():根据不同的模式(search/不是 search)来显示 fragment 和 view

onNewIntent () 流程如下:

onNewIntent() ->mActionBarAdapter.initialize() -> configureFragments() ->invalidateOptionsMenuIfNeeded()

这个流程主要是考虑的该 activity 被其他 activity 调用的时候该如何显示,因为可能会有 search 的请求所以此处还需要对 actionbar 做一次初始化的动作。

configureFragments():根据不同的request 的 action key 来显示(查询)不同的内容

TabPager 需要注意的地方

mTabPager.setAdapter(mTabPagerAdapter);    // 负责滑动显示

mTabPager.setOnPageChangeListener(mTabPagerListener);   // 负责显示mContactsUnavailableFragment

在显示 mContactsUnavailableFragment 的时候是不能滑动的,因为mContactsUnavailableFragment 没有放到 TabPagerAdapter 中,所以不能滑动,只是它在 TabPagerListener 中响应了 select 事件

Menu 的显示

menu 的显示是在 PeopleActivity 中,根据不同的fragment 来显示不同的 menu,此处的 menu 不是在 fragment 中。

大屏和小屏的支持

支持 1 panel 和 2 panel 两种显示方式,主要是通过加载不同目录下的layout 来实现

搜索

流程

用户按下 search 键 -> onSearchRequested() -> mActionBarAdapter.setSearchMode()

用户输入 search 的内容 -> onAction() -> mActionBarAdapter.getQueryString() ->setQueryTextToFragment() -> mAllFragment.setQueryString()

其他

用到了 ListPopupWindow

ActionbarAdapter.java

该类是对于 actionbar 的一个简单封装,主要作用如下:

1. actionbar 的显示(groups,all,favorites)

2. search 和非 search view 的模式切换,给外部提供用户输入的 query string

关键变量和函数

构造函数ActionbarAdapter()

将 actionbar 根据用户需要变为 tab 或者 navigation 的模式;

初始化 search view

initialize()

恢复上一次的状态,例如:是不是在 search 模式,上次选中的 tab 是哪个等

MyTabListener

主要是用来响应用户点击 tab 的事件,例如:点击 tab 之后下面的 content view 也需要对应的发生变化

因为这个类只是对于 actionbar 的抽象管理,所以此处切换 content 的时候其实是调用的外部的 activity 的方法,因为只有 activity 才能管理 fragment,才能设置哪个 fragment 显示或者不显示,所以此处是一个 callback 的机制。

mPrefs

SharedPreference,通过该变量将当前用户选择的 tab 保存起来,下次进入的时候可以显示上次选择的 tab

搜索

启动 search 的方式(进入search模式)

1. 当用户在 PeopleActivity 中点击了 search 按钮

2. 当用户在 PeopleActivity 直接开始输入的时候,

进入 search mode, 调用 mActionBarAdapter.setSearchMode(true);

search 的内容,来自于两个方面

从 PeopleActivity 传入的 string,此时是用户没有点击 search 按钮而直接输入的时候才会发生该情况,通过 mSearchView.setQuery(query, false); 将用户输入的查询结果放到 searchview 中

通过对 search view 安装 setOnQueryTextListener 从而直接获取用户输入的查询内容,此时在 onQueryTextChange()中会调用 onAction() 去通知 PeopleActivity 去做真正的查询,此处也是一个 callback 机制

显示

支持单 panel 和双 panel 两个方式的显示,如果是单 panel 则显示图标,如果是双 panel 则 tab 上显示文字

在 search 的时候是 navigation mode,在其他时候是 tab mode

ContactsUnavailableFragment.java

没有联系人的时候显示的表示为 "空" 的 fragment

该类需要注意的是在调用 setMessageText() 的时候必须判断 mMessageView 是否为空,因为 activity 在 add(replace) fragment 之后对应的 fragment 中的 view 不能保证马上被创建所以需要做一次保护

http://www.lbrq.cn/news/1252585.html

相关文章:

  • 网站建设佰金手指科杰二九/百度投放广告
  • 网站建设静态代码/天津seo招聘
  • 网站建设行业/什么是竞价
  • 网站建设公司 南宁/防恶意竞价点击软件
  • 做网站的靠什么挣钱/windows优化大师官方网站
  • 做一名网站编辑要具备什么资格/百度手机网页版入口
  • 销售人员报销网站开发费/站长统计app网站
  • 手机网站制作免费/谷歌浏览器官网下载手机版
  • 建网站需成本多少钱/金华关键词优化平台
  • 基于django电商网站开发课设报告/微信营销系统
  • 建设一个网站多少钱/白帽优化关键词排名seo
  • 用net做新闻网站/网站快速优化排名app
  • 做自己的网站怎么赚钱/长清区seo网络优化软件
  • 企业网站优化之如何做需求分析/新闻热点
  • 二级a做爰片免费网站/营销推广费用方案
  • 青岛公司建网站公司/超级seo外链工具
  • 购物网站建设流程/营销活动策划方案
  • 国外做宠物产品的网站/整合营销方案
  • 网站的面包屑怎么做的/怎么推广产品最有效
  • 网站建设规划方案模板/短视频seo推广
  • 上海做网站的公司多少钱/个人如何推广app
  • 一家专做中式设计的网站/百合seo培训
  • 网站建设 东道网络/推广链接点击器
  • 做网站开发一般用什么语言/太原seo公司
  • 大型网站建设建设公司/如何自己建个网站
  • 最近新闻报道/seo网络营销外包公司
  • 厚街做网站公司/搜索引擎优化工作
  • 网站建设方案怎么做/广州网站快速排名
  • 网站怎么做交易平台/seo上海培训
  • 中国商标注册网查询网官网/seo服务 文库
  • vue3 el-dialog自定义实现拖拽、限制视口范围增加了拖拽位置持久化的功能
  • Leetcode题解:739每日温度,用单调栈解决问题!
  • 统计鱼儿分布情况 Java
  • 3. 为什么 0.1 + 0.2 != 0.3
  • 攻击实验(ARP欺骗、MAC攻击、报文洪水攻击、DNS欺骗)
  • 【云馨AI-大模型】2025年8月第一周AI浪潮席卷全球:创新与政策双轮驱动