黑马程序员技术交流社区

标题: 揭秘Android 6.0 之 Text Selection [打印本页]

作者: 柳柳桑    时间: 2015-11-24 08:37
标题: 揭秘Android 6.0 之 Text Selection

揭秘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无法运行):



作者: 耀阳圣尊    时间: 2015-11-24 09:36
赞一个
作者: michael_wlq    时间: 2015-11-24 12:03
赞一个吧!!
作者: 2880137973    时间: 2015-11-24 13:22
最佩服明明可以靠颜值吃饭,却偏偏要靠才华的妹子!
作者: 草上飞f    时间: 2015-11-24 15:55
大赞!!!!
作者: HI耀玮    时间: 2015-11-24 18:20
进来看看好牛逼
作者: a784161433    时间: 2015-11-24 21:23
完全看不懂啊
作者: a784161433    时间: 2015-11-24 21:24
完全看不懂啊
作者: 听你说    时间: 2015-11-24 21:58
赞赞,不是因为有了希望才坚持,而是因为坚持才有了希望! 2、不是因为有了机会才争取,而是因为争取了有机会。。。。。。
作者: 董棁    时间: 2015-11-25 08:07
赞一个~~~~~
作者: 845479430    时间: 2015-11-25 09:03
学姐,你上班了吗?、
作者: momoxixi    时间: 2015-11-25 09:28
什么时候给我安排面试啊。。。
作者: Camwly    时间: 2015-11-25 09:29
看不懂啊
作者: 王广彬    时间: 2015-11-25 10:09
赞一个,功能很实用哦
作者: Rocky_zhang    时间: 2015-11-25 22:18
安卓的更新很快,都到6了。要继续学习才能跟上步伐。努力
作者: dooorkeeeper    时间: 2015-11-28 19:31
确实应该!
作者: 草上飞f    时间: 2015-11-29 00:04
大赞!!!!!!!
作者: 陈同英    时间: 2015-11-30 20:34
加油。。。。。。。
作者: 尼玛大叔    时间: 2015-12-1 12:09
看不懂,赞一个
作者: 尼玛大叔    时间: 2015-12-4 09:34
赞一个!!
作者: 雨与雨伞    时间: 2015-12-4 23:49
好高大上啊!
作者: 667784    时间: 2015-12-5 16:52
不是因为有了希望才坚持,而是因为坚持才有了希望!
作者: 墨客110    时间: 2015-12-5 20:28
很有用的东西啊
作者: 雨与雨伞    时间: 2015-12-9 00:06
666666666666666666666666666666666666666666666666
作者: chenxunlei    时间: 2015-12-9 19:36
赞赞赞赞赞
作者: Star_FDt78    时间: 2015-12-9 23:12
黑马是我们的云梯,通天的云梯
作者: hmgui7219    时间: 2015-12-16 19:43
总结得很经典
作者: 韦丹艳58    时间: 2016-1-9 22:09
么么哒!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: shihao    时间: 2016-1-23 17:00
看不懂,赞一个
作者: zx7660    时间: 2016-3-21 08:50
赞一个.....




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2