Android - edittext - 没有显示textselection句柄,也没有共享选项

tm1*_*701 15 android copy-paste android-layout

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

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

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

1 - 长按后,没有显示选择手柄.所以,在问号的位置,我预计逆水滴.这些是您通常用于更改特定选择的句柄.

问题:为什么这些反向滴眼液消失了?我在例如webview中选择文本时确实看到了它们.

是的,我使用'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=""/>
Run Code Online (Sandbox Code Playgroud)

在选择了一个文本(在这个例子中是1个单词)后,我也看到了一个额外的栏"tekstselectie"(= textselection)被放在屏幕上方.这也是自Android 4以来的一个区别.

在此输入图像描述

**解决方案**

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

<item name="android:popupBackground">@color/window_background</item> 
Run Code Online (Sandbox Code Playgroud)

@ color/window_background被选为白色.

Kon*_*nov 6

UPD2:

此外,正如tjm1706所知,仔细检查Theme属性非常重要.在这种情况下,关键是删除<item name="android:popupBackground">@color/window_background</item>

Upd1:

  1. 要在编辑时避免使用这个"双工具栏",请将其添加到主题的样式中:

    <item name="windowActionModeOverlay">true</item>
    <item name="actionModeBackground">@drawable/myapp_action_mode_background</item>
    
    Run Code Online (Sandbox Code Playgroud)

    取自这里

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

    看看这个问题:EditText的自定义剪切/复制操作栏,显示文本选择句柄 - 它包含详细的示例.

原版的:

尝试删除:android:textIsSelectable="true".用它输入是不可能的.如果你不需要EditText编辑 - 可能,简单TextView适合你.

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

在此输入图像描述