blockly > Trường

Lớp trường

Lớp trừu tượng cho một trường có thể chỉnh sửa.

Chữ ký:

export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable 

Triển khai: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable

Hàm khởi tạo

Hàm dựng Đối tượng sửa đổi Nội dung mô tả
(hàm khởi tạo)(giá trị; trình xác thực, cấu hình) Tạo một thực thể mới của lớp Field

Thuộc tính

Tài sản Đối tượng sửa đổi Loại Nội dung mô tả
borderRect_ protected SVGRectElement | rỗng Phần tử đường viền SVG của trường được hiển thị.
clickTarget_ protected Phần tử | giá trị rỗng Phần tử mà trình xử lý lượt nhấp liên kết.
constants_ protected ConstantProvider | giá trị rỗng Các hằng số liên kết với trình kết xuất của khối nguồn.
Hàm CURS string Kiểu con trỏ chuột khi di chuyển qua điểm phát sóng bắt đầu trình chỉnh sửa.
DEFAULT_VALUE T | giá trị rỗng

Để ghi đè giá trị mặc định được đặt trong **Trường**, hãy cập nhật trực tiếp nguyên mẫu.

Ví dụ: FieldImage.prototype.DEFAULT_VALUE = null;

CÓ THỂ CHỈNH SỬA boolean Các trường có thể chỉnh sửa thường cho thấy một số loại giao diện người dùng cho biết chúng là có thể chỉnh sửa. Trình chuyển đổi tuần tự cũng sẽ lưu các dữ liệu này.
enabled_ protected boolean Có thể thay đổi giá trị của trường bằng trình chỉnh sửa trên khối có thể chỉnh sửa không?
fieldGroup_ protected SVGGElement | giá trị rỗng Phần tử nhóm SVG của trường được hiển thị.
isDirty_ protected boolean Khối này có cần được kết xuất lại không?
maxDisplayLength number Số ký tự tối đa của văn bản hiển thị trước khi thêm dấu ba chấm.
tên? string (Không bắt buộc) Tên trường. Duy nhất trong mỗi khối. Nhãn tĩnh thường không được đặt tên.
NBSP

static

readonly

(chưa khai báo) Dấu cách không ngắt.
SERIALIZABLE boolean Các trường theo tuần tự sẽ được lưu bởi trình chuyển đổi tuần tự, còn các trường không chuyển đổi tuần tự sẽ không được lưu. Các trường có thể chỉnh sửa cũng phải chuyển đổi tuần tự được. Theo mặc định, trường hợp này không phải là do SERIALIZABLE tương thích ngược.
size_ protected Kích thước
SKIP_SETUP

static

readonly

biểu tượng duy nhất Một giá trị dùng để báo hiệu khi hàm khởi tạo của một trường nên *không* đặt giá trị của trường đó hoặc chạy cấu hình_, đồng thời nên cho phép một lớp con làm việc đó.
sourceBlock_ protected Chặn | rỗng Chặn trường đính kèm này. Bắt đầu bằng giá trị rỗng, sau đó đặt vào thời điểm bắt đầu.
textContent_ protected Văn bản | giá trị rỗng Phần tử nội dung văn bản của trường được hiển thị.
textElement_ protected SVGTextElement | giá trị rỗng Phần tử văn bản SVG của trường được hiển thị.
validator_ protected FieldValidator<T> | giá trị Hàm xác thực được gọi khi người dùng chỉnh sửa một trường có thể chỉnh sửa.
value_ protected T | giá trị rỗng
visible_ protected boolean Trường này có hiển thị hay bị ẩn do khối bị thu gọn không?

Phương thức

Phương thức Đối tượng sửa đổi Nội dung mô tả
applyColour()

Cập nhật trường này để phù hợp với màu/kiểu của khối.

Các lớp con không trừu tượng có thể cần triển khai phương thức này nếu màu của trường phụ thuộc vào màu của khối. Trình kết xuất sẽ tự động được gọi vào những thời điểm phù hợp, chẳng hạn như khi khối mẹ hoặc trình kết xuất thay đổi.

Hãy xem tài liệu về trường để biết thêm thông tin hoặc hoặc ví dụ về FieldDropdown.

bindEvents_() protected Liên kết các sự kiện với trường này. Có thể bị các lớp con ghi đè nếu cần xử lý dữ liệu đầu vào tuỳ chỉnh.
configure_(config) protected Xử lý bản đồ cấu hình được chuyển vào trường đó.
createBorderRect_() protected Tạo phần tử hình chữ nhật đường viền trường. Không bị các lớp con ghi đè. Thay vào đó, hãy sửa đổi kết quả của hàm bên trong initView hoặc tạo một hàm riêng để gọi.
createTextElement_() protected Tạo một thành phần văn bản cho trường. Không bị các lớp con ghi đè. Thay vào đó, hãy sửa đổi kết quả của hàm bên trong initView hoặc tạo một hàm riêng để gọi.
doClassValidation_(newValue) protected

Xác thực các thay đổi đối với giá trị của trường trước khi đặt các thay đổi. Vui lòng xem **FieldDropdown** để biết ví dụ về cách triển khai lớp con.

**LƯU Ý:** Quy trình xác thực trả về một lựa chọn trong khoảng từ T, null đến undefined. Hoạt động triển khai của **Field** sẽ không bao giờ trả về undefined, nhưng lớp con trả về undefined nếu giá trị mới tương thích với T.

doClassValidation_(newValue) protected
doValueInvalid_(_invalidValue) protected Dùng để thông báo cho trường biết rằng bạn đã nhập một giá trị không hợp lệ. Có thể bị các lớp con ghi đè, hãy xem FieldTextInput. Không hoạt động theo mặc định.
doValueUpdate_(newValue) protected Dùng để cập nhật giá trị của một trường. Có thể bị các lớp con ghi đè để lưu trữ tuỳ chỉnh giá trị/cập nhật những nội dung bên ngoài.
getAbsoluteXY_() protected Trả về toạ độ tuyệt đối của góc trên cùng bên trái của trường này. Điểm gốc (0,0) là góc trên cùng bên trái của nội dung trang.
getBorderRect() protected Lấy phần tử hình chữ nhật đường viền.
getClickTarget_() protected Phần tử để liên kết trình xử lý lượt nhấp. Nếu bạn không đặt chính sách này, thì giá trị mặc định sẽ là gốc SVG của trường. Khi bạn nhấp vào phần tử này trên một trường có thể chỉnh sửa, trình chỉnh sửa sẽ mở ra.
getConstants() Nhận trình cung cấp hằng số kết xuất.
getDisplayText_() protected Lấy văn bản từ trường này để hiển thị trong khối. Có thể khác với getText do dấu ba chấm và định dạng khác.
getFlipRtl() Trả về xem chúng ta có nên lật trường trong RTL hay không.
getSize()

Trả về chiều cao và chiều rộng của trường.

Đây *nói chung* nên là nơi duy nhất mà RenderScript_ được gọi từ đó.

getSourceBlock() Lấy khối đính kèm của trường này.
getSvgRoot() Lấy phần tử nhóm cho trường có thể chỉnh sửa này. Dùng để đo kích thước và định vị.
getText_() protected Một hook của nhà phát triển để ghi đè văn bản được trả về của trường này. Ghi đè nếu nội dung biểu thị văn bản của giá trị của trường này không chỉ là một chuỗi dùng để truyền giá trị của trường. Trả về giá trị rỗng để dùng lại phương thức truyền chuỗi.
getText() Lấy văn bản từ trường này. Ghi đè getText_ để cung cấp một hành vi khác thay vì chỉ truyền giá trị thành một chuỗi.
getTextContent() protected Lấy nội dung văn bản.
getTextElement() protected Lấy phần tử văn bản.
getTooltip() Trả về văn bản chú giải công cụ cho trường này.
getValidator() Lấy hàm xác thực cho các trường có thể chỉnh sửa hoặc rỗng nếu không được đặt.
getValue() Lấy giá trị hiện tại của trường.
initModel() Khởi động mô hình của trường sau khi trường đó được cài đặt trên một khối. Không hoạt động theo mặc định.
initView() protected Tạo giao diện người dùng khối cho trường này.
isClickable() Kiểm tra xem trường này có xác định hàm showEditor_ hay không.
isClickableInFlyout(autoClosingFlyout) Kiểm tra xem trường có thể nhấp vào được khi khối ở trong một cửa sổ bật lên hay không. Theo mặc định, các trường có thể nhấp vào trong các cửa sổ bật lên luôn mở như hộp công cụ đơn giản, nhưng không thể nhấp vào các cửa sổ bật lên tự động đóng như hộp công cụ danh mục. Các lớp con có thể ghi đè hàm này để thay đổi hành vi này. Xin lưu ý rằng isClickable cũng phải trả về giá trị true (đúng) để điều này có hiệu lực.
isCurrentlyEditable() Kiểm tra xem trường này hiện có chỉnh sửa được hay không. Một số trường không thể CHỈNH SỬA được (ví dụ: nhãn văn bản). Các trường khác có thể là EDITABLE nhưng có thể tồn tại trên các khối không thể chỉnh sửa hoặc hiện đang bị vô hiệu hoá.
isEnabled() Kiểm tra xem có thể thay đổi giá trị của trường này hay không bằng trình chỉnh sửa khi khối nguồn có thể chỉnh sửa.
isFullBlockField() protected

Xác định xem trường này có chiếm toàn bộ khối hay không.

Hãy thận trọng khi ghi đè hàm này. Mã này có thể không hoạt động như mong đợi / dự định vì hành vi này là một phần của tin tặc. Nếu bạn đang cân nhắc việc ghi đè hàm này, hãy đăng hành vi bạn dự định lên diễn đàn để xem có cách nào khác không.

isSerializable() Kiểm tra xem trình kết xuất XML có cần chuyển đổi tuần tự trường này hay không. Xử lý logic cho khả năng tương thích ngược và các trạng thái không tương thích.
isTabNavigable() Trả về xem trường có thể điều hướng qua tab hay không.
isVisible() Nhận thông tin xem trường có thể chỉnh sửa này có hiển thị hay không.
loadLegacyState(callingClass, state) Tải trạng thái đã cho bằng các hook XML cũ nếu cần sử dụng. Trả về true để cho biết quá trình tải đã được xử lý, nếu không thì trả về false.
onLocationChange(_) Thông báo cho trường này rằng doanh nghiệp đã thay đổi vị trí.
onMouseDown_(e) protected Xử lý sự kiện con trỏ xuống trên một trường.
onShortcut(_shortcut) Xử lý phím tắt đã cho.
positionBorderRect_() protected Định vị hình chữ nhật đường viền của trường sau khi thay đổi kích thước.
positionTextElement_(xOffset, contentWidth) protected Định vị phần tử văn bản của trường sau khi thay đổi kích thước. Chế độ này xử lý việc định vị cả LTR và RTL.
render_() protected

Được getSize() sử dụng để di chuyển/đổi kích thước bất kỳ phần tử DOM nào và lấy kích thước mới.

Tất cả kết xuất có ảnh hưởng đến kích thước/hình dạng của khối nên được thực hiện ở đây và phải được kích hoạt bằng getSize().

repositionForWindowResize()

Móc của nhà phát triển để đặt lại vị trí WidgetDiv trong quá trình đổi kích thước cửa sổ. Bạn cần xác định hook này nếu trường của bạn có WidgetDiv cần tự định vị lại khi cửa sổ được đổi kích thước. Ví dụ: các trường nhập văn bản xác định hook này để WidgetDiv nhập có thể tự định vị lại trên sự kiện đổi kích thước cửa sổ. Điều này đặc biệt quan trọng khi bạn tắt phương thức nhập, vì thiết bị Android sẽ kích hoạt sự kiện đổi kích thước cửa sổ khi bàn phím mềm mở ra.

Nếu bạn muốn WidgetDiv tự ẩn thay vì định vị lại, hãy trả về giá trị false. Đây là hành vi mặc định.

DropdownDiv đã xử lý logic định vị riêng nên bạn không cần ghi đè hàm này nếu trường của bạn chỉ có DropdownDiv.

saveLegacyState(callingClass) protected Trả về phiên bản trạng thái XML dạng chuỗi nếu cần sử dụng. Nếu không, giá trị này sẽ trả về giá trị rỗng, để báo hiệu trường nên sử dụng quy trình chuyển đổi tuần tự riêng.
setEnabled(enabled) Thiết lập xem có thể thay đổi giá trị của trường này bằng trình chỉnh sửa khi có thể chỉnh sửa khối nguồn hay không.
setSourceBlock(block) Đính kèm trường này vào một khối.
setTooltip(newTip) Đặt chú giải công cụ cho trường này.
setValidator(handler)

Đặt một hàm xác thực mới cho các trường có thể chỉnh sửa hoặc xoá trình xác thực đã đặt trước đó.

Hàm xác thực nhận giá trị của trường mới và trả về giá trị đã xác thực. Giá trị được xác thực có thể là giá trị đầu vào, phiên bản đã sửa đổi của giá trị đầu vào hoặc giá trị rỗng để huỷ thay đổi.

Nếu hàm không trả về giá trị nào (hoặc trả về giá trị không xác định), thì giá trị mới được chấp nhận là hợp lệ. Việc này cho phép các trường sử dụng hàm được xác thực dưới dạng thông báo sự kiện thay đổi cấp trường.

setValue(newValue, fireChangeEvent) Dùng để thay đổi giá trị của trường. Xử lý việc xác thực và các sự kiện. Các lớp con phải ghi đè doClassValidation_ và doValueUpdate_ thay vì phương thức này.
showEditor_(_e) protected Nội dung hấp dẫn của nhà phát triển để tạo trình chỉnh sửa cho trường. Theo mặc định, chế độ này không hoạt động và bạn phải ghi đè để tạo trình chỉnh sửa.
updateEditable() Thêm hoặc xóa giao diện người dùng cho biết trường này có thể chỉnh sửa hay không.
updateSize_(margin) protected Cập nhật kích thước của trường dựa trên văn bản.