我有一个包含一些EditTexts的活动。当我单击EditText更改其中的文本时,光标出现的下方会出现一个蓝色箭头。我怎么能阻止这种情况出现?
答案 0 :(得分:9)
正如MarvinLabs所指出的,这是Android SDK中的一组可绘制内容。它们可以被覆盖。
在sdk平台中查找这些图片:
将它们复制到drawables文件夹,这样就可以引用本地副本了。你可以改变它们的颜色,使它们变空,或任何你想要的颜色。请注意,正如MarvinLabs所说,完全删除它们可能并不明智,因为它们可以帮助用户选择要剪切和复制的文本。
如果您还没有在styles.xml中定义自定义主题,请定义一个。然后将这些项添加到其中:
_
<style name="CustomTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:textSelectHandleLeft">@drawable/text_select_handle_left</item>
<item name="android:textSelectHandleRight">@drawable/text_select_handle_right</item>
<item name="android:textSelectHandle">@drawable/text_select_handle_middle</item>
</style>
<强> BEFORE:强>
<强> AFTER:强>
(不同的EditTexts,但你明白了)
答案 1 :(得分:2)
此指针是一个系统帮助程序,允许用户轻松移动光标(比仅通过触摸EditText更精确)。所以我不知道你是否可以删除它,但我相信它无论如何都不是一个好主意。
此外,这种指针将根据设备进行不同的样式设置。如果你看看SDK的android源代码,你会发现一些名为text_select_handle_XXX.png的drawable,我想你会发现如何在你自己的主题中改变系统风格。
答案 2 :(得分:1)
我非常确定这只发生在特定的API或设备上。它也可能在其他应用程序上有所不同。最终,我没有看到任何真正的方法来禁用设备本机的东西。此外,那里的设备非常庞大,所以即使你找到了办法,你也很难禁用它。
答案 3 :(得分:0)
您可以使用自定义BindingContext
以编程方式执行此操作。您需要创建一个自定义EditText
实现,其中MovementMethod
返回false。然后,您只需覆盖canSelectArbitrarily()
即可返回EditText.getDefaultMovementMethod()
:
CustomMovementMethod