A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柳柳桑 黑马粉丝团   /  2015-11-24 08:37  /  6093 人查看  /  29 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文


揭秘Android 6.0之Text Selection

  在Android6.0Android Design 增加了Text-Selection功能,Text-Selection 提供了功能引导以及用户文本选择。下面咱们来看看怎么使用吧。
  1、准备:
   Android studio 开发环境
       2、TextSelection文档:
   >>startActionMode(Callback)改成startActionMode(Callback,ActionMode.TYPE_FLOATING)
   >>使用新的ActionMode.Callback2接口      
  3、新建一个Project:
   首先咱们先new一个ActionMode.Callback2对象,在ActionMode.Callback2的onCreateActionMode方法使用menuInflater设置好菜单项,代码如例1-1:
例1-1
  1. private ActionMode.Callback2 callback2 = new ActionMode.Callback2() {

  2.     @Override
  3.     public boolean onCreateActionMode(ActionMode mode, Menu menu) {
  4.         MenuInflater menuInflater = mode.getMenuInflater();
  5.         menuInflater.inflate(R.menu.text,menu);
  6.         return true;
  7.     }
  8.     @Override
  9.     public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
  10.         return false;
  11.     }

  12.     @Override
  13.     public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
  14.         return false;
  15.     }

  16.     @Override
  17.     public void onDestroyActionMode(ActionMode mode) {
  18.     }
  19.     //控制这个浮动菜单的位置
  20.     @Override
  21.     public void onGetContentRect(ActionMode mode, View view, Rect outRect) {
  22.         super.onGetContentRect(mode, view, outRect);
  23.     }
  24. };
复制代码

菜单代码如例1-2:
例1-2
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <item android:title="复制" />
  4.     <item android:title="剪切" />
  5.     <item android:title="粘贴" />
  6.     <group>
  7.         <item android:title="传智播客" />
  8.         <item android:title="Android" />
  9.         <item android:title="黑马程序员" />
  10.     </group>
  11. </menu>
复制代码

注意此处我们要把View对象的android:textIsSelectable="true" 设置为true,否则自定义ActionMode不会被调用。代码如例1-3:
例1-3
  1. <TextView
  2.     android:id="@+id/tv"
  3.     android:layout_width="wrap_content"
  4.     android:layout_height="wrap_content"
  5.     android:textIsSelectable="true"
  6.     android:text="@string/str"
  7.     android:textSize="16sp" />
复制代码

然后给View对象设置自定ActionMode。代码如列1-4:
  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3.     super.onCreate(savedInstanceState);
  4.     setContentView(R.layout.text);
  5.     TextView tv = (TextView) findViewById(R.id.tv);
  6.     tv.setCustomSelectionActionModeCallback(callback2);
复制代码
运行效果图如下(资源见附件,此处work GIF无法运行):


29 个回复

倒序浏览
赞一个
回复 使用道具 举报
赞一个吧!!
回复 使用道具 举报
最佩服明明可以靠颜值吃饭,却偏偏要靠才华的妹子!
回复 使用道具 举报
大赞!!!!
回复 使用道具 举报
进来看看好牛逼
回复 使用道具 举报
完全看不懂啊
回复 使用道具 举报
完全看不懂啊
回复 使用道具 举报
赞赞,不是因为有了希望才坚持,而是因为坚持才有了希望! 2、不是因为有了机会才争取,而是因为争取了有机会。。。。。。
回复 使用道具 举报
董棁 中级黑马 2015-11-25 08:07:21
10#
赞一个~~~~~
回复 使用道具 举报
学姐,你上班了吗?、
回复 使用道具 举报
什么时候给我安排面试啊。。。
回复 使用道具 举报
Camwly 中级黑马 2015-11-25 09:29:43
13#
看不懂啊
回复 使用道具 举报
赞一个,功能很实用哦
回复 使用道具 举报
安卓的更新很快,都到6了。要继续学习才能跟上步伐。努力
回复 使用道具 举报
确实应该!
回复 使用道具 举报
大赞!!!!!!!
回复 使用道具 举报
加油。。。。。。。
回复 使用道具 举报
看不懂,赞一个
回复 使用道具 举报
赞一个!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马