精华内容
下载资源
问答
  • 如何编写邮件主题标题

    千次阅读 2011-07-27 15:44:19
     new ByecityMailSmtp("mail.byecity.com", 25, smtpName, smtpPwd, "202.106.0.20", false, "-会员服务", smtpName).Send(  smtpName,  email,  "会员服务丨会员取回密码确认邮件",  mailBody,  new string[]...
     
    


                            string mailBody = string.Format("<h2>取回密码短信</h2><br>以下是您的登录密码:{0},请妥善保管。<br>", pwd);

                            string
                                smtpName = ConfigurationManager.AppSettings["SendEmailName"],
                                smtpPwd = ConfigurationManager.AppSettings["SendEmailPWD"];

                            if (smtpName.IsNullOrEmpty())
                                smtpName = "server0@fgfy.com";

                            if (smtpPwd.IsNullOrEmpty() || smtpName == server0@fgfy.com)
                                smtpPwd = "123456789";

                            //发送邮件
                            new ByecityMailSmtp("mail.byecity.com", 25, smtpName, smtpPwd, "202.106.0.20", false, "-会员服务", smtpName).Send(
                                smtpName,
                                email,
                                "会员服务丨会员取回密码确认邮件",
                                mailBody,
                                new string[] { },
                                Encoding.Default,
                                true,
                                MailPriority.Normal);

    展开全文
  • 发布会上不仅公布了令人震撼的百机升级计划,还展示了HarmonyOS 2全新的系统架构、革命性的分布式技术、原子化服务服务卡片等新技术创新。 其中最受开发者的青睐的新技术是HarmonyOS服务卡片,它是FA的一种界面...

    6月2日,HarmonyOS 2及华为全场景新品发布会如约而至。发布会上不仅公布了令人震撼的百机升级计划,还展示了HarmonyOS 2全新的系统架构、革命性的分布式技术、原子化服务、服务卡片等新技术创新。

    其中最受开发者的青睐的新技术是HarmonyOS服务卡片,它是FA的一种界面形式,能够将FA的重要信息或操作前置到卡片,实现即用即走,卡片到哪服务就会流转到哪,极大提升用户的使用体验。

    HarmonyOS的技术革新离不开每一位开发者的参与,为此我们面向所有开发者发出征文邀请。你在体验和开发服务卡片过程中,有任何感悟或问题,都可以给我们投稿。你的投稿将有可能将被收录进官方专题内容,并有机会获得豪华大礼。

    【征文方向】

    本次征文活动的主题为“玩转HarmonyOS服务卡片”,围绕该主题,开发者可撰写卡片开发教程、卡片应用场景、卡片与原子服务等,我们鼓励你秀出炫酷的服务卡片,与其他开发者分享并同台竞技。本次活动以技术征文为主,内容尽量写得浅显易懂,有示例(代码)会加分哦~!

    【推荐命题】

    #我的HarmonyOS服务卡片试玩初体验

    #基于____,我成功开发了HarmonyOS ____服务卡片

    #如何开发一个服务卡片

    ……

    如果你对服务卡片还不够了解,点击下方链接查阅官网资料可快速上手哦~!

    developer.harmonyos.com/cn/docs/doc…

    【征文时间**】**

    开始时间:2021年6月10日

    结束时间:2021年8月15日

    评选时间:2021年8月16日-2021年8月30日

    【征文规则】

    • 图文形式投稿,文章必须原创,语句通顺,逻辑清晰,排版整洁;
    • 题目自拟,参赛文章需围绕征文主题,在HarmonyOS论坛首发,著作权归作者所有,论坛有使用权;
    • 我们将成立评审团,对参赛文章进行综合评审,包括文章的创新性、实践性、总结性等要素,占比70%,同时考察阅读量/点赞量/评论量/收藏量等基础数据,占比30%;
    • 获奖开发者,我们将通过华为开发者联盟社区站内信联系你,并于7月30日在活动页面公布。

    【如何参与】

    STEP ① 在活动页面注册报名,撰写与本活动相关的技术原创博文;

    STEP ② 在HarmonyOS论坛发布文章,发布格式为:#HarmonyOS征文#+征文标题

    STEP ③ 将征文标题和链接回复至活动页面评论处。

    【奖品详情】

    20210610-183342(WeLinkPC).JPG

    其他福利:

    • 优质文章将有机会在HarmonyOS开发者官方公众号展示;
    • 优秀开发者将优先获得线上/线下活动资格,并有机会以特邀嘉宾的身份参加;
    • 优秀开发者还将有机会参与社区共建并加入超级IP计划,获得资源、流量双倾斜。

    【注意事项】

    • 本征文活动在华为开发者联盟社区进行
    • 论坛发帖,禁止一稿多投;
    • 文章内容需保证原创性,翻译、引用的部分不超过30%;
    • 内容与活动主题不符、非原创内容,有洗稿、营销软文、广告、抄袭嫌疑的文章一经发现,取消活动资格;
    • 本活动最终解释权归华为CBG所有。

    -------------------------------------------------------------------------------------------------------------

    附:截止2021/07/05,开发者共提交HarmonyOS服务卡片主题征文13篇,详情如下:

    1、使用Java轻松实现一个HarmonyOS服务卡片

    developer.huawei.com/consumer/cn…

    2、基于JS,我成功开发了HarmonyOS备忘录服务卡片

    developer.huawei.com/consumer/cn…

    3、鸿蒙卡片-中国空间站卡片&哔哩哔哩弹幕姬鸿蒙版

    developer.huawei.com/consumer/cn…

    4、动画 JS 卡片,打造惊艳桌面

    developer.huawei.com/consumer/cn…

    5、使用Java轻松实现一个HarmonyOS音乐播放器服务卡片

    developer.huawei.com/consumer/cn…

    6、基于HarmonyOS Java UI实现简易的钱包卡片应用

    developer.huawei.com/consumer/cn…

    7、使用Java实现HarmonyOS服务卡片(运动健康卡片)

    developer.huawei.com/consumer/cn…

    8、使用Java实现一个仿“微博热搜”的服务卡片

    developer.huawei.com/consumer/cn…

    9、基于java,我成功开发了HarmonyOS 火车出行 服务卡片

    developer.huawei.com/consumer/cn…

    10、基于JS,我成功开发了HarmonyOS 笑话服务卡片

    developer.huawei.com/consumer/cn…

    11、成功开发了HarmonyOS 影视服务卡片

    developer.huawei.com/consumer/cn…

    12、百年献礼,开发了一款党史学习服务卡片

    developer.huawei.com/consumer/cn…

    13、尝试开发HarmonyOS 企业服务卡片

    developer.huawei.com/consumer/cn…

    欢迎大家点赞喜欢的服务卡片征文,也欢迎大家踊跃投稿,获奖名额还有很多,机会不要错过喔~!

    原活动链接:developer.huawei.com/consumer/cn…

    原作者:HarmonyOS活动发布

    展开全文
  • 这24张图只有当过妈妈的人才能看懂,这就是什么女人比男人寿命更长……你一定见过这样的“标题党”文章。本文作者分析了Facebook和Twitter上转发量较大的1亿条文章标题,找出了撰写标题的套路,看完你会吓坏了!...

    大数据文摘作品

    编译:潇夜、Happen、吴双、龙牧雪

    震惊!这24张图只有当过妈妈的人才能看懂,这就是为什么女人比男人寿命更长……

    你一定见过这样的“标题党”文章。本文作者分析了Facebook和Twitter上转发量较大的1亿条文章标题,找出了撰写标题的套路,看完你会吓坏了!或者不会:)

    文章标题的重要性无需夸大。一个好的标题可以吸引观众来点击、阅读以及分享你的内容。很多情况下,引发人们分享的其实是标题而非文章内容本身。


    我们分析了Facebook和Twitter上转发量较大的1亿篇文章的标题,找出了哪些关键词让文章被浏览最多次、用哪些词做标题开头和结尾最有效、哪些词不能使用、标题应该多长……


    虽然并不存在能够制造病毒式传播或者流行标题的万能公式,但我们还是可以学到一些增加文章点击量的经验。


    最吸引人的标题关键词


    2017年3月1日至2017年5月10日期间发布的1亿条文章标题的分析结果显示,获得Facebook最多参与(喜欢、分享、评论)的三连词或三字词组如下所示:


    为什么这些数据会让你再次思考


    在我们的样本中,标题中最有影响力的三个词组是Will make you(会让你)


    短语“会让你”获得的用户参与度是第二受欢迎的词组的两倍以上。这让人非常惊讶。在我们最开始寻找参与度高的词组时,这句话甚至都不在我们的名单上。


    那么为什么这样一个词组会表现的如此出色呢?比较有意思的一点是这是个上下文连接词组。它不能用来作为标题的开头或者结尾,而是清晰地明确了内容与对读者潜在影响之间的关系。


    这样一种标题的格式阐明了读者为什么应该关心其内容,同时也从文字上承诺了读者这篇文章内容会对“你”有直接影响,通常是情绪反应。这样的标题意义明确,简洁有效。


    典型的这类标题:


    • 这24张图会让你感受到世界的美好

    • 这家航空公司为乘客提供的服务会让你流泪——如此感人

    • 6个残酷的真理会让你变得更好

    • “谁穿得更好看?”这些照片会让你开怀大笑

    • 13个旅游提示会让你在旅行中更聪明


    情感类标题可以提升Facebook的互动率


    在分析中,我们通过衡量互动次数发现Facebook上情绪短语的使用有持续性效果。例如:


    • 喜极而泣

    • 让你哭泣

    • 让人起鸡皮疙瘩

    • 太可爱了

    • 震惊地看到

    • 融化你的心

    • 笑到停不下来


    许多包含情绪短语的影响大的帖子都有图片或者视频,尽管也有一部分是故事。下面是一个视频帖的标题:

    患罕见病的小女孩与纽约城市芭蕾舞团共舞,

    她会融化你的心!


    尽管这些情感相关的帖子表现出色,但内容作者在使用情感相关或非常煽情的短语时还是必须小心谨慎。2017年5月,Facebook宣布将对“使用耸人听闻的语言来夸大事实的标题”做降权处理,因为这些标题常常是为了“让事情看起来比原本事实真相更严重”。


    好奇心和窥视欲也能获得Facebook的高参与度


    能引起人们的好奇心或者窥视欲的标题同样也在Facebook上获得了较高的参与度。比如:


    • 接下来发生了什么

    • 正在谈论它

    • Twitter上的反响

    • 吓坏了

    • 前X名的歌曲


    读者往往对人们正在谈论的内容感到好奇,比如热搜榜上最受欢迎的话题或者Twitter上人们对于某个话题或事件的反应等等。这种类型的内容往往借助读者的好奇心和窥视欲来吸引其注意力。去年里这种帖子中最常见的标题就是“吓坏了”。


    我们想提醒作者尽量避免“接下来会发生什么”这种风格的标题。虽然它们之前表现不错,但是现在Facebook会将这类隐瞒信息的钓鱼式标题分类并做降权处理。我个人认为这是一件好事,我们希望能看到这种纯粹为了吸引点击量的钓鱼式标题的终结


    其他吸引人的标题


    解释类:


    • 这就是为什么

    • 原因是


    这些短语同样与好奇心相关。比如:


    • 这就是为什么女人比男人寿命更长……

    • 这就是为什么你应该朝左睡


    我们都希望能通过阅读完一篇文章来变得更聪明一些。而这类解释原因类的文章恰恰承诺读者可以提供一个看待事件的另外视角。在某些方面,这些标题与包含“会让你”词组的标题类似,因为它们都在保证读者会从文章内容中得到些什么。


    测试类:


    • 我们能否猜测

    • 只有X在


    这些短语在测试类标题中非常流行,比如:


    • 我们能否猜到你的真实年龄?

    • 50人中只有1个人可以识别这16个语法错误,你可以吗?


    这种标题类型中最常用的是一种测试的变体,它会挑战你让你回答问题,并且根据你的答案看看是否可以预测你的年龄、教育水平、工作状态等等。这些测试迎合了我们想要更了解自己的想法,或者想证明自己很聪明、自己确实成长在80年代、自己生活在合适的城市或者其他一些事情。这些测试就像镜子一样,我们很难就径直走过去而不看一眼镜中的自己。这些标题很难让人忽视。


    圈子类:


    • X件只有


    这些流行标题迎合了人们对于圈子的归属感,比如:


    • 25件只有老师才能理解的事

    • 17件只有双胞胎妈妈才了解的事

    • 9件只有和哥哥长大的女孩才明白的事

    • 10件只有夜班护士才懂的事


    我们看到了有关圈子的标题在显著增长,特别是政治上的党派标题。就好像分享支持他们观点的文章是这些圈子的义务一样。我们在美国大选中看到了这一点,相似的事情也发生在最近的英国选举中。这些圈子相关的标题常常获得大量的参与和分享,这会鼓励网站更频繁地使用有争论性的标题。


    绝对不能用:那些表现最糟糕的词


    这个图里是Facebook上参与度最低的标题中的常用短语:

    注意:我们只查看了那些被用于至少100个不同领域中的短语或词组。还有一些短语会比上面的短语表现更糟糕,但是上面列出的短语是最常用的短语中表现最糟糕的。


    有趣的是,在Facebook上类似于“节省费用”的短语表现得非常糟。虽然也有一些单独的文章表现不错,但是其平均参与度非常低。相比之下,“节省费用”这个短语在Pinterest的DIY话题上却表现不错。如下图所示:


    这一结果突出了网络平台的重要性。也许,Facebook并不是一个人们想要去寻找节省开支小贴士的地方,而Pinterest的DIY板块就是个更好的选择。分析结果印证了这些举措的重要性:研究什么才是真正适合你的受众、让你的话题和特定社交网络环境匹配。


    一个标题可能在Facebook上表现欠佳,但是可能在另一个社交网络上对于另一批不同的受众表现很好。为不同领域写作也是一样的,例如“需要知道”这样的短语可能在健康领域表现良好,但是在其他环境中表现不尽如人意。关键是要研究如何才能和你的特定受众产生共鸣,然后再来测试你的文章标题。


    常用于标题开头和结尾的词


    最流行的短语“Will make you(会让你)”是一个很明显位于标题中心的短语,因为它连接了两个不同的元素。也就是说它通过将某事物与情绪反应联系起来形成语句结构。


    这比较令人惊讶,因为之前的研究表明标题最重要的部分是前三个词和最后三个词。这可能是因为使用“会使你”这个连接词组实际上强调了句子开始和结束部分的重要性。


    我们认为,研究标题中开头的前三个词的词组和末尾的短语是有用的。


    以Facebook的互动数衡量(x表示数字),以下是用于标题开头的最流行的短语:


    以Facebook的互动数衡量(x表示数字),以下是标题结尾最常用的短语:

    最后,以Facebook的平均互动数来衡量,以下是最常见的标题开头第一个词:


    双词短语


    我们也找到了最常用的双连词或者两个单词的组合。它们通常是我们前面所列出的三词短语或者三连词的一部分,比如:


    • make you(让你)-will make you(会让你)

    • is why(为何)-this is why(是为何)


    然而,有一些例外的双词短语获得了较高的平均参与度,包括:


    • goes viral(走红):9746 次平均参与

    • most beautiful(最美):3921 次平均参与


    这些都与我们在研究三词短语时发现的吸引人的标题类型一致。第一种能激起好奇心,例如“高中生停车场作画在Twitter上走红”。


    第二种是情感内容,通常表示对于某种特殊内容的明确承诺。比如“布拉格的Clementinum是世界上最美的图书馆”。Bored Panda选取了一个相似的标题“世界上最美的图书馆在捷克,布拉格”。两个帖子都在Facebook上获得了超过250000次的参与。


    列表类文章、数字10


    许多吸引人的标题短语都包含数字,也有许多使用了列表类文章的格式,即标题以数字为开头。众所周知,列表类文章能获得高于平均水平的社交分享次数。我们对于不同数字在表现上的差异非常感兴趣,比如以10开头或者4开头的列表文章。下图展示了在我们的样本中,以不同数字开头的列表文章在Facebook上的平均参与度。


    我们可以看到数字10是标题中表现最好的数字,这也证实了之前在这方面的研究。我们研究发现,接下来三个表现最好的数字是5、15、7。


    许多营销人员主张为那些综合性文章使用独特的数字或者更长的数字。例如,Buzzfeed在使用数字23上取得了许多次成功,但是平均来说使用数字10、5、15、7的文章表现最好。


    你的标题应该多长?比你想象的长


    接下来我们来看看标题的长度。Jacob Neilson这类专家一直认为新闻网站最好的标题都是十分简短的。Jacob认为标题应该是短短的五个词语或少于40个字符。Buffer的Kevan Lee曾写了一个综述,提出博客标题最好是六个词或少于50个字符。相比之下,Outbrain在研究了100000篇帖子后,认为16到18个词或者80到110个字符是吸引参与度的最佳选择。此外,MailChimp的研究表明标题电子邮件的主题长度其实无关紧要。


    我们决定去测试一下这些假设。我们绘制了帖子标题的字数和在Facebook中的平均参与度的关系。结果见下图。                                                                                                                                                                                    


    我们可以看到,标题字数在12到18个词的帖子获得了最高的Facebook参与度平均值。当标题更长或更短时,Facebook参与度平均值开始下降。


    12+的词可能听起来很多,但如果你想要明确主题、格式和使用高效的三连词,你就会用到这么多词。下面是一些例子:


    • This Infographic Shows How Only 10 Companies Own All The World’s Food Brands(这张图显示全世界所有食品品牌仅由这10家公司拥有)

    • E-Cigarettes Found to Have 10 times More Cancer Causing Ingredients than Regular Cigarettes(电子香烟被发现含有高于普通香烟10倍的致癌成分)


    我们还研究了标题字符数和Facebook参与度平均值之间的关系。结果如下:

    字符数与Facebook参与度平均值呈现了和单词数相似的关系,这并不让人奇怪。含有80到95个字符的标题表现最好。因此,我们的研究结果倾向于支持Outbrain先前的研究工作,即在参与度上,较长的标题表现更好


    Twitter上的标题关键词


    标题在Facebook上的表现是否与Twitter相同呢?这不一定。我们发现Twitter获得最高参与度的标题短语与在Facebook上的截然不同。唯一的例外是“会让你”(will make you),这个在Facebook上参与度最高的短语,在Twitter上分享度也排在第四。


    格外有意思的是,Twitter上分享度较高的标题中极少有情感短语。这与我们在Facebook上的发现不太一样。


    高分享度的Twitter短语都注重新鲜度,例如“第一次”(for first time)“是新的”(is the new)


    Twitter上分享度较高的三连词更注重解释性分析性,比如:

    • 真相是

    • 的崛起

    • 需要知道的事

    • 这就是…

    • 我们所知道的…


    你可以在你自己的推文中尝试不同的关键词来测试不同标题在Twitter中的影响力。


    建议你花费与写文章同样长的时间来写标题。


    读者需要更有力的点击理由。每当读者看到一条标题,无论是在收件箱、社交媒体还是搜索结果页,他们会做瞬间的成本-效益计算,其心理都是相同的:这东西值得我花费几秒钟吗?


    当你拟定标题时,可以问问自己这些问题:


    • 为什么读者要关心你的内容?

    • 你能对文章给读者带来的影响作出一定的承诺或断言吗?

    • 具体明确(例如“这就是什么”,“这就是如何使”,“原因是”)

    • 你能在标题里包括一个情感因素吗?(尤其是当你想在Facebook上获得一定的吸引力)

    • 如果标题不包含情感,就使其有用(例如“适用于你”,“N个简单小贴士”,“你应该用”)

    • 你是否在探讨一个热门话题?如果是这样的话,你是否能在标题里将其突显出来?

    • 你能否将文章变成一次测试题或者挑战?

    • 你是否能将文章定位成一篇解释帖或者回答帖?

    • 尝试讲故事。是的,你可以在15个词的标题中讲一个故事。海明威用3个词就做到了:“出售:婴儿鞋,从未穿过。”

    • 谁是你的目标圈——哪些标题能引起圈中人的共鸣?党派性或有争议的标题是否会更加吸引你的目标圈群体?

    • 标题长度是否在12-18个词之间?


    原文链接:

    http://buzzsumo.com/blog/most-shared-headlines-study/


    文摘菌有话说:

    以后我就这样写标题了��你们想看吗?


    10件只有数据科学家才知道的事

    这10个AI服务,让人起鸡皮疙瘩

    人人都在谈论的大数据政策,会让你流泪

    展开全文
  • Android 标题栏(1)

    千次阅读 2018-09-26 13:44:40
    本文来自网易云社区作者:孙有军标题栏在每个应用中都有,有各种各样的标题栏,今天我们就主要来说说标题栏怎么做,主要内容涉及到自定义标题,ActionBar,Toolbar等知识。自定义标题几年前开发安卓是没有统一的标题...

    本文来自网易云社区

    作者:孙有军


    标题栏在每个应用中都有,有各种各样的标题栏,今天我们就主要来说说标题栏怎么做,主要内容涉及到自定义标题,ActionBar,Toolbar等知识。


    自定义标题

    几年前开发安卓是没有统一的标题的,每一个页面都需要自己来布局标题,如果有多个页面标题类似,往往就统一编写出来一个布局,统一管理和处理,这里我们来看看怎么编写自定义布局标题,不采用系统提供的,因为有时候有些特定的或者特殊效果的标题,自定义比较方便。

    需要注意的是现在的应用基本上都从4.0开始支持,就算是低版本也有surpport包可以使用,因此在使用之前,给该页面设置为NoActionbar。

    布局

    首先我们新建一个title_layout.xml布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    xmlns:tools="http://schemas.android.com/tools"
                    android:layout_width="match_parent"
                    android:layout_height="56dp"
                    android:background="@color/color_FA5864"
                    android:orientation="vertical"
                    tools:showIn="@layout/activity_custom_title">
    
        <ImageView
            android:id="@+id/back_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:src="@drawable/actionbar_white_back_icon"/>
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@id/back_icon"
            android:textColor="@color/white"
            android:textSize="16sp"
            tools:text="@string/ask"/>
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="18dp"
            android:src="@drawable/person_center"/>
    
    </RelativeLayout>

       上面的布局都很简单,就是一个相对布局,两边是图标,中间一个标题,根据具体需求可以实现更为复杂的效果,这里我们来说说tools效果。

    小技巧

    tools:showIn="@layout/activity_custom_title"

    因为该title_layout是被其他布局include引用使用的,因此你在当前界面预览,只能预览到当前实现的效果,而如果你添加了tools:showIn属性,就可以在当前布局预览到放置到目标布局后的效果。

    tools:text="@string/ask" 当我们在布局时,有时可能需要设置文案来预览实现效果,但是当正式提交时又需要删除默认设置的文案,这里可以使用tools:text来插入文案,这个只在编写时有效果,正式提交时会删除该属性。

    布局引用

    在布局完成后,就可以在目标布局中include使用:

    <include layout="@layout/title_layout"></include>

    其他设置

    最后关掉当前的Actionbar,有以下几种方式可以关闭:

    onCreate中调用requestWindowFeature(Window.FEATURE_NO_TITLE);记住一定要在setContentView之前调用。至于为什么,你看看源码就知道了。

    在AndroidManifest对对应的Activity设置style。style为NoActionBar

    如果设置的style不是NoActionBar,则对使用的style复写<item name="windowActionBar">false</item> 和<item name="windowNoTitle">true</item>属性

    优缺点

           自定义很容易实现,他主要有哪些优缺点呐?

    优点:

    定制度高,灵活 容易实现比较复杂的布局 容易实现自定义动画效果

    缺点

    重复布局,样式多时通用性差 很多特定效果,代码复杂 系统相比原生,优化比较少

    ActionBar & Toolbar

     你可能在想为什么这里要合在一起,不应该一个一个的讲解吗?这我们先看看他们出现的原因。

    历史沿革

    在系统早期没有统一的标题设置,每个页面就需要自己来实现标题,因此在Andriod 3.0版本,系统中引入了ActionBar来统一实现标题效果,并且对3.0以前的版本采用support包进行支持(其实现在基本上所有手机已经从4.0开始支持了,因此可以不需要考虑3.0以前的版本),ActionBar的出现,提供了全局统一的UI界面,并且提供了一致的操作效果,只要你是ActionBar进行实现的,都有同样的效果。

    虽然ActionBar统一了很多东西,但是它也牺牲了灵活性,为了实现某些效果还是需要采用自定义实现,尤其是一些炫酷的标题效果,google也认识到了这个问题,尤其是在当前界面不炫酷都没有人用的情况下,google在Android L(5.0)版本提供了Toolbar,在L之前的版本采用support包来实现,Toolbar可以当做ActionBar来使用,并且提供了灵活性,因此ActionBar已经不怎么建议使用了。由于Toolbar可以当前ActionBar来使用,说明两者具有很多相同的东西,因此这里放到一起来讲解。

    ActionBar的显示与隐藏

    ActionBar的显示

    在3.0以上的版本,只要你的Activity实现了Theme.Holo主题,或者Theme.Holo的子主题,他默认就已经有ActionBar效果了。如果是其他主题,你可能需要调用requestWindowFeature(Window.FEATURE_ACTION_BAR)函数来显示,或者对你使用的主题中的 windowActionBar属性设置为true,而3.0之前的版本(不用考虑3.0之前的版本)你需要让你的Activity继承自ActionBarActivity,并且设置主题为Theme.AppCompat主题。

    ActionBar的影藏

    在前面自定义的时候我们已经说了怎么隐藏,这里在来提一下,可以调用requestWindowFeature(Window.FEATURE_NO_TITLE)来隐藏,也可以对Activity设置NoActionBar主题进行隐藏,或者设置windowActionBar为false,还可以在代码中调用getActionBar().hide或者getSupportActionBar().hide()。这里调用的函数不同是根据你继承的Activity来区分的,如果你直接继承的是Activity则调用getActionBar(),如果是support包中则调用getSupportActionBar()。

    Toolbar的使用

    要使用Toolbar,首先要将默认出现的ActionBar隐藏,因此需要设置NoActionBar,或者设置windowActionBar为false,之后在布局中加入Toolbar节点。样例如下,Activity引入的一个toolbar_layout.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:orientation="vertical"
        tools:context="com.netease.study.ui.title.ToolbarActivity">
    
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay"/>
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="内容内容内容"/>
    
    
    </LinearLayout>

         布局完成后,在界面中find该View,将他设置到ActionBar,让Activity将它当做ActionBar来处理。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_toolbar);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }

         将find出来的Toolbar设置到ActionBar。就这么简单,之后所有的使用方式都跟之前的ActionBar一样了。从布局中也可以看出我们将Toolbar放置在线性布局的顶部,其实它可以放置在任何位置,与ActionBar不一样,ActionBar默认在顶部,状态栏以下的位置。

    设置属性

    既然是标题栏,那肯定是有一些属性可以进行设置的,那我们就来以此的设置一些属性,这里设置的属性对于ActionBar,Toolbar(这里的Toolbar是当做ActionBar来使用的,就是调用了setSupportActionBar(toolbar)函数)都实用。我们来看看一张图片,先来认识一下ActionBar上的各个属性:

    为ActionBar图标,一般为应用图标,不过现在很多应用已经不再显示图标了,包含它只是为了品牌曝光和宣传;

    Action按钮,点击这些图标可以做一系统响应Overflow按钮,当前面的Action按钮显示不下,且配置了某些属性时会显示该按钮。

    设置图标

    可以采用如下的方式来设置应用图标:

    1. 在AndroidManifest中的Application节点或者Activity节点设置logo属性

    但是要注意的是如果你的主题是Theme.Holo的,如果设置了logo属性,默认是会显示图标的,但是如果你设置的是Theme.AppCompat,那恭喜你,默认不显示,如果你想显示怎么办代码中调用。


    2.调用代码来显示

    如果配置中没有设置logo属性,我们需要代码来控制,但是这里也分为两种情况:

    a.如果你的Activity是继承自Activity的,那么你可以直接调用getActionBar().setLogo()
    
    b.如果你的Activity是继承自AppCompatActivity的,那么你需要如下的方式来进行设置,三个设置方式一个都不能少:
    
    private void setLogo() {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setLogo(R.drawable.logo);
        actionBar.setDisplayUseLogoEnabled(true);
        actionBar.setDisplayShowHomeEnabled(true);
    }

    上面就是整个设置logo的方式,Android就是这么的坑爹啊!不同的版本,不同的主题,不同的基类情况就完全不一样了,这也是Android适配的一方面,全是坑,坑。

    设置标题

    设置标题是比较简单的,不会出上面的那些幺蛾子,主要有以下两种方式来设置:

           1:在AndroidManifest的Activity设置label节点,但是要注意的是这里只能设置主标题

           2:在代码中设置,如果是继承自Activity调用getActionBar().setTitle()来设置主标题,调用getActionBar().setSubTitle()来设置副标题。如果是继承自AppCompatActivity,则需要调用getSupportActionBar来进行设置。

    设置Action按钮

    我们在上面的ActionBar图中认识到了有Action按钮。那怎么添加Action按钮呐?

    1:首先创建一个菜单布局 action_menu.xml,放置到menu文件下:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/search_icon"
            android:icon="@drawable/actionbar_search_dark_icon"
            android:title="@string/search"
            app:showAsAction="always">
        </item>
    
        <item
            android:id="@+id/plus"
            android:icon="@drawable/actionbar_plus_icon_normal"
            android:title="@string/more"
            app:showAsAction="always">
        </item>
    </menu>

    菜单里面包含两个按钮一个搜索,一个加号,每一个item就表示一个菜单,item里面可以继续嵌套menu,作为该项item的子菜单。这里我们来看看每一个item有哪些属性需要设置:


    1. id标识该菜单

    2. icon 显示图标,如果在overflow则显示title

    3. title 如果在overflow中不显示icon,直接显示title,如果在ActionBar长按显示该title

    4. showAsAction标识显示规则,重点看一下该属性:

    always: always永远显示ActionBar中,如果空间不够则无法显示 ifRoom: ifRoom表示有空间的时候显示在ActionBar中,否则显示在overflow中 never:never一直显示在overflow中

    同时还需要注意的是:如果你使用的support,也就是Theme为Theme.AppCompat,需要声明xmlns:app="http://schemas.android.com/apk/res-auto" app可以改成任何名称,showAsAction前面用app来标识, 如果不是采用的support,也就是Theme为Theme.Holo,前面用android来标识,否则所有菜单都默认显示在overflow中


    2:代码中加载菜单,需要复写onCreateOptionsMenu函数


    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.action_menu, menu);    
        return true;
    }

     经过上述两步,菜单就已经显示在ActionBar上面了。

    响应Action按钮

    显示菜单后,需要响应点击事件,怎么来响应点击事件?需要复写onOptionsItemSelected函数:

    @Overridepublic boolean onOptionsItemSelected(MenuItem item) {  
      switch (item.getItemId()) {        case R.id.search_icon:
                Toast.makeText(this, "clicked", Toast.LENGTH_LONG).show();          
                  break;        
                  case R.id.plus:           
                   break;
        }   
         return super.onOptionsItemSelected(item);
    }

    在onOptionsItemSelected中根据id来进行响应。

    设置ActionView

    我们可以在菜单中设置ActionView,比如搜索,他是一个带图标和输入框的控件,他分别有两种不同的形态,展开和折叠。接下来我们就讲讲怎么设置ActionView。        1.在menu菜单的item中设置actionViewClass属性:

    <item    
    android:id="@+id/search_icon"  
      android:icon="@drawable/actionbar_search_dark_icon"   
       android:title="@string/search"    
       app:actionViewClass="android.support.v7.widget.SearchView"  
         app:showAsAction="ifRoom|collapseActionView">
    </item>
    // 注意 根据是否引用的support包,actionViewClass设置的类不同,如果是support包则设置为android.support.v7.widget.SearchView且用app来标识, 否则设置为android.widget.SearchView且用android来标识

    2:在代码中可以获取到ActionView,也可以设置ActionView:

    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.action_menu, menu);
        MenuItem search = menu.findItem(R.id.search_icon);    
        // 这种方式也可以获取到ActionView
        // SearchView view = (SearchView) search.getActionView();
        // 一定要注意导入的类是否正确,要区分support和非support包中的类
        SearchView view = (SearchView) MenuItemCompat.getActionView(search);
        view.setOnQueryTextListener(new SearchView.OnQueryTextListener() {     
           @Override
            public boolean onQueryTextSubmit(String query) {         
               return false;
            }        @Override
            public boolean onQueryTextChange(String newText) {       
                 return false;
            }
        });    return true;
    }

    如果menu菜单中没有设置actionViewClass,也可以在代码中手动设置,search.setActionView(new SearchView(this));,上面就是获取到的SearchView,一定要注意引入的类是否正确,否则会崩溃,拿到后就可以设置查询等监听了,这里就不在演示了。




    网易云免费体验馆,0成本体验20+款云产品! 

    更多网易研发、产品、运营经验分享请访问网易云社区


    相关文章:
    【推荐】 消息推送平台高可用实践(下)
    【推荐】 网易云容器服务微服务化实践—微服务测试及镜像化提测全流程实践
    【推荐】 中秋福利 | 10本技术图书(编程语言、数据分析等)免费送

    展开全文
  • 针对Wordpress长文章进行优化:实现文章分页。...当我们对Wordpress长篇文章实现分页后,还需要对标题添加页码,形成:xxxx-第几页 的样子,这样是为了避免搜索引擎收录过多的同标题但不同网址的页面,有利SEO。
  • 主题抽取的核心——主题词表

    千次阅读 2019-11-26 16:53:46
    主题词表通常包括标题表、元词表等不同类型。它是编制主题标引和文献信息检索系统的主要依据。中国图书情报学界习惯上又常把叙词称为主题词。 主题词表是文献机构进行信息处理的工作规范和技术标准。它是对重复...
  • 状态栏、标题栏、导航栏的了解

    千次阅读 2018-08-09 18:17:18
    状态栏:是指手机左上最顶上,显示中国移动、安全卫士、电量、网速等等,在手机的顶部。下拉就会出现通知栏。 标题栏:是指一个APP程序最上部的titleBar,从名字...实现方式一:主题设置 隐藏标题栏:@android:styl...
  • Hexo-Matery主题细致美化

    万次阅读 2021-01-21 20:39:03
    Hexo-Matery主题美化 ...首先在hexo官网主题里面搜索Matery主题点击进入作者大大的github,然后下载 master 分支的最新稳定版的代码,解压缩后将 hexo-theme-matery 的文件夹重命名matery,复制到Hexo 的 theme
  • 今天写布局时,发现一个问题,之前没注意,在预览布局文件时有标题栏存在,...解决办法:在Android Studio预览界面选择无标题主题样式来预览 如图:点击样式的按钮 弹出样式选择界面 选择一个不带标题的样式即可。
  • vuex教程、vuex的使用。本文详细介绍了如何将vuex整合在vue项目里,同时实现全局动态更换主题功能进行讲解。
  • jekyll bootstrap更改主题theme

    千次阅读 多人点赞 2014-12-23 22:28:43
    使用主题介绍:由于JB版本0.2.X的主题,现在完全是模块化的。他们跟踪和单独版本的主题包。这让每个人都可以自由发布和共享主题。Jekyll-Bootstrap v 0.2.x只附带twitter主题,其他主题需要被安装。直接浏览当前主题包...
  • WebStack Pro导航主题高级版包含开源版所有功能,且数据库无缝升级(需重新设置主题设置项);重构开源版主题,资源更轻巧;网址收藏添加三种类型:网站、公众号、下载资源;添加文章入口,单独博客模板页,可以做...
  • 微信用户第一眼看到的是标题,如果标题没有吸引力的话,那么他们就不会点击,用户不点击,无论你的产品和服务是多么的棒,一切都是0…… 撰写一篇好的微信文章,最重要的环节是要有一个好的标题。一个好的标题往往...
  • Hexo博客搭建之主题构建(melody)

    千次阅读 2019-11-09 14:06:01
    前言 上一章主要记录和说明Hexo的基础搭建和使用技巧. 本章, 我们主要记录下Hexo博客中关于主题的使用. 主题的选用后, 其实就是... 当前大多数Hexo博客NexT主题, 或NexT主题的变种. Melody是新开发的小清新主题. ...
  • 创建WordPress主题1、修改修改style.css2、引用样式表3、修改index.php文件修改头文件修改标题栏修改导航菜单nav4、后台增加页面 1、修改修改style.css 现在我们将HTML模板转换WordPress主题。 我刚刚安装了...
  • 对于内部页面(和帖子),404 错误的标题为 H2 ### 显示图像 - 拇指 * 显示帖子中的第一篇文章 "" + 显示缩略图 "" 要在标题中显示图像,请使用以下顺序: 1. 首先,检查是否有缩略图,如果有 -
  • 网站页面title标题的设置方法技巧

    千次阅读 2020-06-28 15:26:40
    而且当用户在百度网页搜索中搜索到你的网页时,title会做最重要的内容显示在摘要中,搜索引擎在判断一个网页内容权重时,title是主要参考信息之一,那么,网站页面title标题的设置方法技巧有哪些呢? 一、网站标题...
  • wordpress主题开发get_post()笔记

    千次阅读 2018-03-16 11:42:55
    主题开发中经常需要在非文章页面或者分类页面调用某一篇文章的标题,简介等信息,所以就需要单独得获取这些指定的文章,而文章的唯一的标记的就是该篇文章的ID,那如何获取文章的ID呢,在我的其他博文里面有...
  • WordPressTOB0.9主题下载

    千次阅读 2018-09-26 09:35:04
    WordPress TOB0.9主题   主题下载地址:https://zzzjtd.com/1334.html 本文来自:IT技术 主题功能: SEO优化完美的基础SEO优化、首页关键字和描述自定义、文章关键字和描述的自定义 速度优化图片和头像lazy...
  • 利用云服务器搭架Hexo个人博客

    千次阅读 2018-01-15 14:01:13
    个人非常喜欢Hexo搭建的个人博客,偏爱Next主题。很多都是将Hexo博客和GithubPages结合一起进行使用的,但其实GithubPages国内访问速度好像并不理想,经常加载很慢,感觉还不如我这个学生机。索性我就尝试搭在自己...
  • Java Mail解决标题乱码:???

    千次阅读 2019-02-13 17:02:14
    使用javax.mail发送邮件本地没有问题,部署到服务器邮件标题就报???的乱码! 解决如下: subject = MimeUtility.encodeWord(subject, "UTF-8", "Q");
  • android 实现了知乎日报的大部分功能,增加双击标题栏回到顶部以及双击 webview 返回两个实用功能
  • wordpress截取标题字符最简单的方法

    千次阅读 2012-02-20 15:52:33
    //文章标题截取 function short_title($before = ”, $after = ”, $echo = true, $length = false) { $title = get_the_title();if ( $length && is_numeric($length) ) { $title = substr( $title, 0, $...
  • Hexo博客主题pure修改记录

    千次阅读 2017-12-14 20:21:30
    Hexo博客主题pure修改记录
  • 解决System.Net.Mail发送邮件标题过长就出现乱码(Base64)问题,不知道有没有人遇到过。
  • //邮件标题编码 mailMessage.SubjectEncoding = Encoding.UTF8; //邮件主题 mailMessage.Subject = title; //邮件内容 mailMessage.Body = content; //邮件内容编码 mailMessage.BodyEncoding = ...
  • 现用主题 wpdx 也已更新至 2.3 版本,在原有横向布局(主菜单在左边)的基础上,再添加垂直布局(主菜单在上方),每种布局都有 5 种配色,选择更自由!同时主菜单已经支持 3 级菜单啦!依旧响应式布局,PC、平板、...
  • 【获奖公布】“我的2016”主题征文活动

    万次阅读 多人点赞 2016-12-15 12:08:59
    在接下来的这十几天里,让我们用博客记录下这或开心、或痛苦,或特殊,或平淡的2016年,愿剩下的每一天我们都不会虚度~值此岁末之际,CSDN博客频道携手“图灵教育”开展了“我的2016”主题征文活动,听大家聊聊2016...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,053
精华内容 21,221
关键字:

以服务为主题的标题