【问题标题】:Android - edittext - no textselection handles are shown and no sharing optionAndroid - edittext - 不显示文本选择句柄,也没有共享选项
【发布时间】:2016-04-05 23:12:48
【问题描述】:

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

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

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

1 - 长按后不显示选择句柄。所以,在问号的地方,我期望的是反向水滴。这些是您通常用来更改特定选择的句柄。

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

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

2 - 所选文本的“共享”选项不可用。为什么?

什么是 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=""/>

在选择文本(在本例中为 1 个单词)后,我还看到屏幕顶部有一个额外的条“tekstselectie”(=textselection)。这也是自 Android 4 以来的不同之处。

** 解决方案**

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

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

@color/window_background 被选为白色。

【问题讨论】:

  • 您是否使用 appcompat-v7 版本 23.1.1 构建?
  • 我研究了这个问题,但没有找到任何东西。无法在我的任何设备上重现。我不知道使用最新的 appcompat 版本是否会有所帮助。
  • 我将所有内容都升级到了 23.1.0。唉,没有变化。为什么这适用于 webview 而不是 edittext?
  • 您可以尝试添加到edittext android:imeOptions="actionSend" 吗?另外,你的主题父是什么?
  • 添加 imeOptions 没有帮助。主题父是:

标签: android android-layout copy-paste


【解决方案1】:

更新2:

另外,正如 tjm1706 所指出的,仔细检查 Theme 属性很重要。在这种情况下,关键是删除&lt;item name="android:popupBackground"&gt;@color/window_background&lt;/item&gt;

更新1:

  1. 为避免编辑时出现这种“双重工具栏”,请将其添加到您的主题样式中:

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

    取自here

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

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

原文:

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

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

【讨论】:

  • 唉,没用。与您的演示不同的是,屏幕顶部多了一个复制粘贴栏。
  • @tjm1706 即使在 Android M 上,它也会增加额外的复制粘贴栏吗? (gif中带有共享/复制的浮动气泡是M中的标准)
  • 我用我现在看到的内容更新了“问题”。有足够的信息吗?
  • @tjm1706 好的,现在我明白了 - 那么这是您使用工具栏的方式的问题。我会尝试复制它并更新答案。 (虽然,您发布的 EditText 根本不适用于 android:textIsSelectable="true")
  • @tjm1706 我相信,这就是您需要的解决方案:stackoverflow.com/questions/28277676/…
【解决方案2】:

在 xml 中添加 android:textIsSelectable。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多