2016-09-26 14 views
10

Trong một yếu tố Android EditText bạn có thể ngăn "chế độ chỉnh sửa toàn màn hình" kích hoạt ở chế độ ngang với android:imeOptions="flagNoExtractUi" (như chi tiết here).Bạn có thể tắt chỉnh sửa toàn màn hình ở chế độ ngang trong React Native Android không?

Có cách nào để nhân rộng cùng một hành vi với thành phần React Native TextInput không? Tôi đã tìm kiếm thông qua các tài liệu và StackOverflow và đã không tìm thấy một giải pháp.

Trả lời

5

Bắt đầu từ v0.40.0 React Native's TextInput có giá trị disableFullscreenUI, đặt imeOptions="flagNoExtractUi" trong nội bộ.

<TextInput disableFullscreenUI={true} />

4

Một giải pháp là viết thành phần gốc tùy chỉnh và liên kết nó với dự án React Native của bạn. Về cơ bản, bạn có thể tạo một tùy chỉnh EditText rằng imeOptions được đặt theo mặc định là android:imeOptions="flagNoExtractUi" hoặc cho một hành vi năng động hơn, bạn có thể tạo một trình thiết lập trong EditText tùy chỉnh và hiển thị nó bằng cách sử dụng @ReactProp. Bằng cách này bạn sẽ có thể thiết lập nó thông qua các đạo cụ của thành phần từ dự án React Native của bạn.

Viết thành phần giao diện người dùng tùy chỉnh (đặc biệt là một thành phần đơn giản như thế này) khá thẳng về phía trước và nhiều hơn dễ hơn âm thanh. Có một phong nha documentation và rất nhiều hướng dẫn ra khỏi đó.

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn! Chấp nhận vì có vẻ như đó là cách duy nhất để làm điều đó hiện tại. Tôi sẽ cung cấp cho nó một shot và nếu tôi nhận được nó để làm việc tôi sẽ gửi một liên kết đến các thành phần ở đây cho người khác sử dụng. – Nate

+0

Không thể thực hiện điều này thông qua 'setNativeProps'? Điều đó thậm chí còn tồn tại trên Android? –

+0

@MattFoley Sử dụng 'setNativeProps' trên thành phần React Native (' Text') không có nghĩa là bạn có thể truy cập các thuộc tính của thành phần gốc ('TextView') không được tiếp xúc với thành phần React Native. Như các trạng thái tài liệu, bạn sử dụng 'setNativeProps' * để thực hiện các thay đổi trực tiếp đến một thành phần mà không sử dụng trạng thái/đạo cụ để kích hoạt tái render của toàn bộ subtree *. Nếu thuộc tính của thành phần gốc không có sẵn trong React Native, bạn không thể truy cập nó trừ khi bạn tạo thành phần gốc tùy chỉnh của riêng mình và liên kết nó với React Native. – George

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