背景
我有一个标准的Material Design按钮,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.AppCompatButton
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/medium_margin"
android:layout_marginRight="@dimen/medium_margin"
android:textStyle="bold"
tools:text="I am a Button"
style="@style/PrimaryColoredButton" />
应用于它的样式如下所示。
<style name="PrimaryColoredButton" parent="Widget.AppCompat.Button.Colored">
<item name="android:textColor">@color/white</item>
<item name="android:capitalize">sentences</item>
<item name="android:background">@drawable/primary_button_background</item>
</style>
问题
当长按按钮时,系统会出现粘贴按钮,允许用户将内容粘贴到按钮标签中。
![Material Button showing Paste option](https://istack.dev59.com/k9LX8.webp)
![enter image description here](https://istack.dev59.com/BItRk.webp)
有趣的是,只有在长按背景而不是文本时才会发生这种情况。
<item name="android:capitalize">sentences</item>
,它的行为与你描述的完全一样。 - Graham SmithTextView
的源代码(该类很大),但我相当确定我的初步诊断是正确的。 - Mike M.TextUtils
中是否有任何特别有用的内容。将一个String
按照必要的标点符号分割,大写每个单词的首字母,然后将结果连接起来是很容易的。可能有更快或更简单的方法。也许Apache的StringUtils
有相关的函数。 - Mike M.