Android textview 实现长按自由选择复制功能的方法
这里有一个大坑,我的viewGroup中有一个这个属性android:descendantFocusability=”blocksDescendants”
开始没有注意到,试了好多方法都不行,后来才看到这个属性,顺便科普一下,这个属性有三个值~
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
这里使用afterDescendants就好了,
标题有一点误区,其实这里的textView是editText,只是样子像textView而已,直接上代码
<EditText android:id="@+id/order_details_tv_order_number" style="@style/theme_loginEditText" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" android:background="@null" android:editable="false" android:textIsSelectable="true" android:gravity="right|center_vertical" android:lines="1" android:textColor="@color/pub_color_black" android:textCursorDrawable="@null" android:textSize="@dimen/text_h16" tools:text="2382787482347" />
其中需要注意的是这几个属性
android:background=”@null”//背景设为null,去掉editText下划线
android:textCursorDrawable=”@null”//游标设为null,去掉游标
android:editable=”false”//不可编辑
android:textIsSelectable=”true”//文字内容可选
测试发现部分rom会弹不出来系统自带复制按钮,加入下面代码可以保证复制成功
tvView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipboardManager cm =(ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(orderDetailsTvOrderNumber.getText().toString());
//ToastUtil.toastSth(getContext() , "订单号已复制到剪切板,快去粘贴吧~");
return false;
}
});
以上这篇Android textview 实现长按自由选择复制功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android studio button 按钮 四种绑定事件的方法【实例代码】
这篇文章主要介绍了Android studio button 按钮 四种绑定事件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-08-08
flutter material widget组件之信息展示组件使用详解
这篇文章主要为大家详细介绍了flutter material widget组件之信息展示组件的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-08-08


最新评论