2016-01-01 17 views
15

Trên màn hình Ứng dụng, tôi có một số chế độ xem EditText. Ứng dụng của tôi được tạo bằng cách sử dụng Material Design (AppCompactActivity, v.v.).Android - edittext - không có chốt xử lý văn bản nào được hiển thị và không có tùy chọn chia sẻ

Trong khi hiển thị trường EditText, với báo chí dài, tôi cố gắng chọn một số từ trong văn bản. Điều này cho phép tôi sao chép hoặc chia sẻ văn bản đó. Chọn nhiều hơn 1 từ có vẻ là không thể.

Kể từ khi chuyển đổi sang thiết kế Vật liệu tôi thấy 2 điều:

1 - Sau khi báo chí dài không có lựa chọn handle hiển thị. Vì vậy, ở vị trí của câu hỏi đánh dấu tôi mong đợi giọt nước ngược. Đây là các xử lý bạn thường sử dụng để thay đổi lựa chọn cụ thể.

Câu hỏi: tại sao những thuốc nhỏ mắt ngược lại biến mất? Tôi thấy họ khi chọn văn bản, ví dụ: một webview.

Có, tôi sử dụng 'android: textIsSelectable = "true"'. Dưới đây bạn sẽ thấy bố cục EditText.

enter image description here

2 - Các "chia sẻ" tùy chọn cho văn bản đã chọn là không có sẵn. Tại sao?

enter image description here

lĩnh vực EditText là gì?

<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=""/> 

Khi lựa chọn một văn bản (trong trường hợp này 1 từ) những gì tôi cũng thấy là một thanh thêm 'tekstselectie' (= textselection) được đặt trên đầu trang của màn hình. Đó cũng là một sự khác biệt kể từ khi Android 4.

enter image description here

** Giải pháp **

Trong chủ đề của tôi, tôi đã có một dòng đó gây ra vấn đề không hiển thị bất kỳ lựa chọn văn bản xử lý:

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

@ color/window_background được chọn là màu trắng.

+0

Bạn đang xây dựng với phiên bản appcompat-v7 23.1.1 chưa? –

+0

Tôi đã nghiên cứu vấn đề và không tìm thấy gì. Không thể tái tạo trên bất kỳ thiết bị nào của tôi. Tôi không biết nếu sử dụng phiên bản appcompat mới nhất sẽ giúp đỡ. –

+0

Tôi đã nâng cấp mọi thứ lên 23.1.0. Than ôi, không thay đổi. Tại sao tính năng này hoạt động cho webview chứ không phải cho edittext? – tjm1706

Trả lời

6

Upd2:

Ngoài ra, như tjm1706 tìm ra, điều quan trọng là xem xét cẩn thận các tài sản Theme.Trong trường hợp này, chìa khóa là để loại bỏ <item name="android:popupBackground">@color/window_background</item>

Upd1:

  1. Để tránh điều này "hai thanh công cụ" trên chỉnh sửa, thêm video này vào phong cách của Chủ đề của bạn:

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

    lấy từ here

  2. Để thêm Chia sẻ (hoặc bất kỳ nút nào khác) - bạn cần đặt trên EditTextsetCustomSelectionActionModeCallback:

    Kiểm tra câu hỏi này: Custom cut/copy action bar for EditText that shows text selection handles - nó chứa ví dụ chi tiết.

gốc:

Cố gắng loại bỏ : android:textIsSelectable="true". Không thể gõ với nó. Và nếu bạn không cần EditText để có thể chỉnh sửa - có thể, đơn giản TextView phù hợp với bạn tốt hơn.

Nếu không có nó, EditText của bạn hoạt động tốt đối với tôi:

enter image description here

+0

Than ôi, nó không giúp ích gì. Một sự khác biệt với bản demo của bạn là thêm một thanh dán sao chép được đặt trên đầu màn hình. – tjm1706

+0

@ tjm1706 hiện nó có thêm thanh dán sao chép ngay cả trên Android M không? (Điều này bong bóng nổi với chia sẻ/bản sao trong gif là tiêu chuẩn trong M) –

+0

Tôi cập nhật các 'câu hỏi' với những gì tôi nhìn thấy bây giờ. Thông tin đầy đủ? – tjm1706

0

Thêm android: textIsSelectable trong xml.

Các vấn đề liên quan