Android - edittext - 没有显示文本选择句柄,也没有共享选项

Android - edittext - no textselection handles are shown and no sharing option

在应用程序屏幕上,我有许多 EditText 视图。我的应用程序是使用 Material 设计(AppCompactActivity 等)构建的。

在显示 EditText 字段时,长按我尝试 select 文本中的多个单词。这允许我复制或共享该文本。选择超过 1 个单词似乎是不可能的。

自从迁移到 Material 设计后,我看到了两件事:

1 - 长按后没有显示 selection handles。所以,在问号的地方,我期待反水滴。这些是您通常用来更改特定 selection 的句柄。

问:为什么这些反向眼药水不见了?我在 selecting 文本时确实看到了它们,例如网页视图。

是的,我用'android:textIsSelectable="true"'。下面是 EditText 布局。

2 - selected 文本的 "sharing" 选项不可用。为什么?

什么是 EditText 字段?

<EditText
    android:id="@+id/geocache_info_hint"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="15sp"
    android:singleLine="false"
    android:lines="4"
    android:scrollHorizontally="false"
    android:scrollbars="vertical"
    android:layout_marginLeft="5dp"
    android:ellipsize="none"
    android:textIsSelectable="true"
    android:text=""/>

根据文本的 selection(在本例中为 1 个单词),我还看到在顶部放置了一个额外的栏 'tekstselectie'(=textselection)的屏幕。这也是自 Android 4 以来的差异。

** 解决方案**

在我的主题中,我有一行导致不显示任何文本的问题 select离子句柄:

<item name="android:popupBackground">@color/window_background</item> 

@color/window_background 被选为白色。

Upd2:

此外,正如 tjm1706 发现的那样,仔细阅读主题 属性 很重要。在这种情况下,关键是删除 <item name="android:popupBackground">@color/window_background</item>

Upd1:

  1. 要在编辑时避免这种情况"double-toolbar",请将其添加到您的主题样式中:

    <item name="windowActionModeOverlay">true</item>
    <item name="actionModeBackground">@drawable/myapp_action_mode_background</item>
    

    取自

  2. 要添加共享(或任何其他按钮)- 您需要在 EditText setCustomSelectionActionModeCallback:

    上设置

    查看这个问题:Custom cut/copy action bar for EditText that shows text selection handles - 它包含详细示例。

原文:

尝试删除android:textIsSelectable="true"。用它打字是不可能的。如果您不需要 EditText 可编辑 - 可能,简单的 TextView 更适合您。

没有它,你的 EditText 对我来说很好用:

在xml中添加android:textIsSelectable。