官方Twitter的Android应用程序的不断推出新的Android的UI功能和行为模式,如仪表板,搜索栏,QuickAction和行动吧。一个有趣的模式是QuickActions显示在上下文行动列表视图这种模式实际上已经存在于QuickContact对话框/默认酒吧应用程序(因为机器人2.0)。

QuickActions对话框不包含在标准的Android SDK的,所以我们必须手动创建它。起初,我并没有从理念上如何建立,所以我决定下载并阅读源代码的程序跟 机器人的Git我发现QuickContact对话框使用私有API调用(com.android.internal.policy.PolicyManager)不存在标准的SDK。谷歌后,张贴和有关团体质疑它在堆栈溢出,我得到了它的解决方案Qberticus(感谢名单Qberticus!)。

Qberticus的QuickActions使用简单/普通的布局,所以我必须创建一个自定义布局,因此将QuickContact样子跟应用程序或QuickActionsTwitter的应用程序。源代码基于QuickContact,我做了一个BetterPopupWindow类轻微变质对Qberticus的和扩展它来实现自定义布局。我也使它可定制的,所以图标和列表文本动作都可以定制。

以下是QuickActions演示的screenshoots:

QuickContact / Twitter的QuickActions


代码段
创建行动清单

<font style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; " mce_style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; "><font style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; " mce_style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; ">最后ActionItem图表=新ActionItem(); chart.setTitle(“图表”); chart.setIcon(getResources()getDrawable(R.drawable.chart)。); chart.setOnClickListener(新OnClickListener(){@ Override ^ 1错误的onClick (视图v){Toast.makeText(TestQuickAction.this,“图选择”,Toast.LENGTH_SHORT)显示();。}});最后ActionItem生产=新ActionItem(); production.setTitle(“产品”);生产。setIcon(getResources()getDrawable(R.drawable.production)。); production.setOnClickListener(新OnClickListener(){@ Override ^ 1错误的onClick(视图v){Toast.makeText(TestQuickAction.this,“产品选择”,烤面包。LENGTH_SHORT)显示();。}}); </font></font>

第01行:创建新的行动
线路03:设定的动作游戏
行03:设置操作图标
线路04:点击设置监听器

对话框显示QuickAction

<font style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; " mce_style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; "><font style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; " mce_style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; ">按钮btn1 =(按钮)this.findViewById(R.id.btn1); btn1.setOnClickListener(新View.OnClickListener(){@ Override ^ 1错误的onClick(视图v){QuickAction质量保证=新QuickAction(五); qa.addActionItem (图表); qa.addActionItem(生产); qa.setAnimStyle(QuickAction.ANIM_AUTO); qa.show();}}); </font></font>


线路05:创建新QuickAction对话
行07-08:添加操作项
09行:设置动画风格
011线:显示QuickAction

下载完整的源代码

Gallery3D_like QuickActions

下载完整的源代码

随着QuickActions选择的动作

<font style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; " mce_style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; "><font style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; " mce_style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 100%; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; vertical-align: baseline; display: inline; background-position: initial initial; background-repeat: initial initial; ">addAction.setOnClickListener(新OnClickListener(){@ Override ^ 1错误的onClick(视图v){Toast.makeText(NewQA.this,“添加”+文字,Toast.LENGTH_SHORT)显示();。mQuickAction.dismiss();}} ); </font></font>

下载完整的源代码


更多相关文章

  1. Android:TextView的常用功能
  2. Android(安卓)- 主要的UI元素
  3. [Android] 使用Matrix矩阵类对图像进行缩放、旋转、对比度、亮度
  4. Android(安卓)View视图绘制
  5. android之eclipse下查看android系统源代码
  6. android事件拦截处理机制详解
  7. Android(安卓)TextView文字横向自动滚动(跑马灯)
  8. Android获取屏幕分辨率及DisplayMetrics简介
  9. Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及Lis

随机推荐

  1. android 多线程 — IntentService
  2. Android第十讲笔记(WebView,SharedPreferen
  3. QMUI Android
  4. 分析 flutter 打包流程及 aar 产物,并将最
  5. 编译生成可执行文件(Android(安卓)studio
  6. NestedScrollView中添加一个android:fill
  7. 【Android网络通话】关于语音通话LinPhon
  8. Appium学习第一个测试脚本
  9. android读取扫码模组数据的方法
  10. Android图形系统草稿