2016-01-01 19 views
15

Na ekranie aplikacji mam wiele widoków EditText. Moja aplikacja została zbudowana przy użyciu Material Design (AppCompactActivity itp.).Android - edittext - nie widać uchwytów wyboru tekstu i opcji udostępniania

Podczas wyświetlania pola EditText, przy długim naciśnięciu, próbuję wybrać liczbę słów w tekście. To pozwala mi kopiować lub udostępniać ten tekst. Wybór więcej niż 1 słowa wydaje się niemożliwy.

Od migracji do materiałów Projektowanie widzę 2 rzeczy:

1 - Po długim prasy Brak wybór uchwytów pokazane. Tak więc, w miejscu znaków zapytania oczekiwałem odwrotnych kropel wody. Są to uchwyty, których zwykle używasz do zmiany konkretnego wyboru.

Pytanie: dlaczego te odwrócone krople do oczu zniknęły? Widzę je po zaznaczeniu tekstu w widok internetowy.

Tak, używam "android: textIsSelectable =" true "". Poniżej widzisz układ EditText.

enter image description here

2 - Opcja "dzielenie" dla zaznaczonego tekstu nie jest dostępna. Czemu?

enter image description here

Jakie jest pole 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=""/> 

Po wyborze tekstu (w tym przypadku 1 słowo) co widzę też, że dodatkowy bar „tekstselectie” (= textselection) kładzie się na górze ekranu. To również różnica ponieważ Android 4.

enter image description here

** Rozwiązanie **

W moim tematem miałem wiersz, który spowodował problem nie pokazuje żadnych zaznaczenie tekstu obsługuje:

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

Parametr @ color/window_background został wybrany jako biały.

+0

Czy budujesz z appcompat-v7 w wersji 23.1.1? –

+0

Zbadałem problem i nic nie znalazłem. Nie można odtworzyć na żadnym z moich urządzeń. Nie wiem, czy pomocna byłaby najnowsza wersja aplikacji. –

+0

Uaktualniłem wszystko do 23.1.0. Niestety, bez zmian. Dlaczego to działa dla widoku internetowego, a nie dla edittext? – tjm1706

Odpowiedz

6

Upd2:

Ponadto, jak tjm1706 zorientowali się, że ważne jest, aby dokładnie zapoznać się z obiektem Theme.W tym przypadku kluczem było usunięcie <item name="android:popupBackground">@color/window_background</item>

Upd1:

  1. Aby tego uniknąć "podwójnego paska narzędzi" na edycji, dodać do stylu Twojego motywu:

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

    pobrane z here

  2. Aby dodać Udostępnij (lub dowolny inny przycisk) - musisz ustawić na swoim EditTextsetCustomSelectionActionModeCallback:

    Sprawdź to pytanie: Custom cut/copy action bar for EditText that shows text selection handles - zawiera szczegółowy przykład.

oryginalny:

Spróbuj usunąć: android:textIsSelectable="true". Nie można z niego pisać. A jeśli nie chcesz, aby EditText było edytowalne - najprawdopodobniej prostsza TextView pasuje ci lepiej.

Bez niego twoi EditText działa dobrze dla mnie:

enter image description here

+0

Niestety, to nie pomaga. Różnica w stosunku do wersji demonstracyjnej polega na tym, że dodatkowy pasek kopiuj-wklej umieszczony jest na górze ekranu. – tjm1706

+0

@ tjm1706 czy umieszcza dodatkowy pasek kopiuj-wklej nawet w Androidzie M? (ta pływająca rzecz z udziałem/kopią w gifie jest standardem w M) –

+0

Zaktualizowałem "pytanie" tym, co teraz widzę. Wystarczające informacje? – tjm1706

0

Dodaj androida: textIsSelectable w xml.