在界面布局中使用ShareActionProvider

Android在ICS版本中提供了一个 ShareActionProvider 用来创建分享菜单,并且会根据用户选择分享来源的频度自动调整菜单顺序。使用起来不错。

如果您的设计需要在界面上使用分享功能,而不是在ActionBar上,那么能否使用该分享控件呢?如下图所示:

在界面使用分享控件

下面来看看如何实现这个需求:

ShareActionProvider 类有个函数 onCreateActionView, 这个函数会返回分享菜单的View,这个View是可以放到其他界面地方的。所以获取到该View加入界面中即可,如下示例:

ShareActionProvider provider = new ShareActionProvider(this);
        Intent sendIntent = new Intent(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, "Test Text");
        sendIntent.setType("text/plain");
        provider.setShareIntent(sendIntent);
        //获取分享菜单的View
        mShareView = provider.onCreateActionView();
        mShareView.setBackgroundResource(android.R.drawable.dark_header);

        LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
        int wrap = android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
        //添加到布局中
        layout.addView(mShareView, wrap, wrap);

唯一需要注意的就是上面添加菜单到布局中的代码,需要指定宽度和高度参数为WAP_CONTENT,否则的话在4.2.2系统上高度会拉大。

时间: 2024-07-30 13:49:43

在界面布局中使用ShareActionProvider的相关文章

【免费直播课】第三期:AppCan基础之界面布局

小伙伴们, 2月10日(周三),AppCan将组织节前的最后一次直播活动,节前涨知识,不能错过. 先来温习前面的课程 [免费直播课]第二期:AppCan基础之多窗口框架 [免费直播课]第一期——AppCan基础之Hi AppCan 视频观看地址 http://edu.appcan.cn/study.html?code=119 预习下新课程 界面布局是AppCan Hybrid移动应用开发直观展现的基础.通过本课的学习,深入了解AppCan Hybrid移动应用界面布局方式.界面布局共计四课时.希

最小高度为满屏的界面布局

在前端界面布局中经常遇到一种场景:就是界面有header和footer的情况,当采用流体布局的时候经常会因为中间的内容部分的内容不足导致界面的footer浮在界面文档的底部,但是却在窗口的中部的情况,体验非常差,问题的解决经历了以下过程. a.采用了fixed来固定footer在窗口底部,但是会产生文档内容过长导致的footer不能跟着文档底部流动,而且产生遮挡的现象,同时对于ie6的兼容不好. b.使用文档流布局和绝对布局结合,通过js来实现,通过进行窗口的高度和文档的高度对比,确定底部foo

iOS中xib与storyboard原理,与Android界面布局的异同

用文本标记语言来进行布局,用的最多的应该是HTML语言.HTML可以理解为有一组特殊标记的XML语言. 一.iOS中xib与storyboard显示原理 在iOS中主要的布置界面的方式有3种:代码,xib,storyboard. 1. 代码 代码布置界面是万能的,但通常很复杂.布置一个简单的界面可能需要很多行代码,因此十分繁琐. 下面为创建一个按钮的代码,最少也要3行: UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd

android中填充界面布局的三种方式

改变原来界面布局的三种方式: 1.第一种方式: LayoutInflater li = LayoutInflater.from(this); 具体代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activ

iOS界面布局的核心以及TangramKit介绍

前言 TangramKit是iOS系统下用Swift编写的第三方界面布局框架.他集成了iOS的AutoLayout和SizeClass以及Android的五大容器布局体系以及HTML/CSS中的float和flex-box的布局功能和思想,目的是为iOS开发人员提供一套功能强大.多屏幕灵活适配.简单易用的UI布局解决方案.Tangram的中文即七巧板的意思,取名的寓意表明这个布局库可以非常灵巧和简单的解决各种复杂界面布局问题.他的同胞框架:MyLayout是一套用objective-C实现的界面

ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局 一.实现效果 二.使用纯代码自定义一个tableview的步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中

Android 界面布局

Android布局是所有带界面的Android应用的开端,布局应用的好坏直接决定了用户体验. Android共有五种布局,分别为FrameLayout(堆栈布局). LinearLayout(线性布局). RelativeLayout(相对布局). TableLayout(表格布局). AbsoluteLayout(绝对布局).最常用的布局是FrameLayout.LinearLayout和RelativeLayout. FrameLayout:在布局文件中使用<FrameLayout>标签标

Android 布局中的include标签使用

Android 布局中的include标签使用 最近在布局时,有好多页面都是有共同特点的,比如标题:一个同样的样式! 如下图所示: 如果给每个页面都单独的写一个标题的布局那就太麻烦了,如果能写一个标题布局,其它页面重用该多好! 这个时候,<include> 就隆重登场了! 写一个标题的布局 title.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:an

java进阶10 GUI图形界面 布局管理器之FlowLayout GridLayout

先说说FlowLayout 流式布局管理器. 效果 这是当第一行显示不下,才转到第二行的. 看看代码 package Frame; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class MyLayout{ JFrame frame; public MyLayout(JFrame frame) { //