Làm cách nào để đặt ký tự khoảng trắng vào tên chuỗi trong XML?


174

tôi đã xác định một số chuỗi trong strings.xmltập tin. Bây giờ tôi cần đặt thêm khoảng trắng giữa một số số trong chuỗi. Khi tôi gõ thêm ký tự khoảng trắng, điều này không hiển thị trên ứng dụng.

Trước:

<string name="spelatonertext3">-4, 5, -5, 6, -6,

Và nếu tôi đặt thêm không gian như thế này:

<string name="spelatonertext3">-4,  5, -5,   6,  -6,

Nó chỉ trông giống nhau trên ứng dụng. Làm cách nào để tạo các ký tự khoảng trắng thành chuỗi XML?


Chà, nó cũng trông giống như vậy trong trang này ... :) điều tôi muốn có một khoảng trống giữa các con số, làm sao có thể như vậy ..?
Andreas

Sử dụng định dạng mã để bảo toàn khoảng trắng (& <>nội dung) trên SO. :)
Andrew Thompson

Câu trả lời:


405

để sử dụng khoảng trắng trong xml dưới dạng chuỗi sử dụng &#160;. XML sẽ không có khoảng trắng như vậy. nó sẽ cắt khoảng trắng trước khi cài đặt nó. Vì vậy, sử dụng &#160;thay vì khoảng trắng đơn


1
Điều này không hoạt động với quấn_content của một textview, khi không gian xảy ra ở cuối văn bản. Chế độ xem văn bản không duy trì chiều rộng được đưa lên bởi ký tự 'khoảng trắng'.
toobsco42

28
Điều này sẽ thêm một không gian không thể phá vỡ. Nó khác với một không gian thông thường và sẽ không hoạt động tốt với một số chức năng nhất định ( normalize-spaceví dụ: XPath ). Hãy thử sử dụng &#032;(không gian thông thường) thay vì &#160;. @ toobsco42
shwartz

Tôi đã phải sử dụng &#160;thay vì \u0020đặt một không gian không phá vỡ sau mã vùng trong một số điện thoại. Mặt khác, số điện thoại đã được bọc ở cuối dòng sau dấu ngoặc đơn của mã vùng.
mharper

& # 032; là ok nếu bạn cần 1 không gian. Nếu bạn đặt một vài cái (& # 032; & # 032; ...) thì chúng bị cắt thành 1. Tôi nghĩ rằng đó là hành vi tương tự như một khoảng trống thông thường nên có vẻ như vô dụng. Nếu tìm thấy cũng đề xuất về & # 009; (được coi là một ký tự tab): nó không hiển thị gì cả. & # 160; hoạt động tốt, đó là những gì tôi cần, cảm ơn ρяσѕρєя K.
herve-guerin

57

Chèn \ u0020 trực tiếp vào XML để trống mà bạn muốn giữ lại.

<string name="spelatonertext3">-4, \u00205, \u0020\u0020-5, \u00206, \u0020-6,</string>

24

Android không hỗ trợ giữ khoảng trắng ở cuối chuỗi trong tệp String.xml, vì vậy nếu bạn muốn có khoảng trắng sau chuỗi, bạn cần sử dụng mã unicode này ở giữa các từ.

\ u0020

Đó là một nhân vật không gian unicode.


Điều này làm việc với tôi bằng Android Studio 3.6.2 được biên dịch sang Android 4.4. Cảm ơn.
Tình yêu và hòa bình - Joe Codwell

11

Như đã đề cập, cách chính xác để có một khoảng trắng trong tệp XML là sử dụng \u0020ký tự unicode cho một khoảng trắng.

Thí dụ:

<string name="spelatonertext3">-4,\u00205,\u0020-5,\u00206,\u0020-6</string>

Các đề xuất khác đã nói để sử dụng &#160;hoặc &#032;có hai nhược điểm này. Nhược điểm đầu tiên là đây là các ký tự ASCII, do đó bạn đang dựa vào một cái gì đó như TextView để phân tích chúng. Nhược điểm thứ hai là &#160;đôi khi có thể gây ra sự gói lạ trong TextViews.


7

Biến thể không gian:

<string name="space_demo">|&#x20;|&#x2009;|&#x200A;|</string>

| KHÔNG GIAN | KHÔNG GIAN NÀY | KHÔNG GIAN TÓC |


1
Đây là thứ ngọt ngào và tuyệt vời nhất
Abdul Waheed

6

Điều này sẽ làm việc như là tốt. Sử dụng dấu ngoặc kép để duy trì không gian

<string name="spelatonertext3">"-4,  5, -5,   6,  -6,"</string>

1
Đây là câu trả lời sạch nhất (dễ đọc nhất) theo ý kiến ​​của tôi. Thật không may, hầu hết mọi người có thể không đưa nó ra xa danh sách câu trả lời trước khi tiếp tục.
DavidR

5

Đặt &#160;trong tệp string.xml để chỉ ra một khoảng trống trong dự án Android.


5

Bạn cũng có thể sử dụng

<string name="spelatonertext3"> "-4,  5, -5,   6,  -6, "> </string>

Đặt bất cứ thứ gì vào " "(trích dẫn) với không gian, và nó sẽ hoạt động


1
Đặt bất cứ thứ gì vào "" (trích dẫn) với không gian và nó sẽ hoạt động: ĐÂY KHÔNG PHẢI LÀM VIỆC
Krunal Shah

3

Theo câu hỏi của bạn nếu bạn muốn thêm khoảng trắng nhiều hơn một tài nguyên chuỗi thì có nhiều tùy chọn để thêm khoảng trắng giữa ký tự hoặc từ:

1.By mặc định một không gian bạn có thể thêm trực tiếp vào tệp tài nguyên chuỗi, nó hoạt động tốt. nhưng nếu cung cấp nhiều hơn một khoảng trắng trong tệp tài nguyên chuỗi thì nó loại trừ khoảng trắng đó. ví dụ . -4, 5, -5, 6, -6,

  1. Nếu bạn muốn thêm nhiều khoảng trắng bên trong tệp tài nguyên chuỗi thì hãy sử dụng: - i. thêm unicode sau ký tự như

        <string name="test">-4,&#160;&#160;5,&#160;&#160;-5,&#160;&#160;6,&#160;&#160;-6,</string>

ii. bạn có thể sử dụng "\ u0020"

<string name="test">-4,\u0020\u0020 5,\u0020\u00205 -5,\u0020\u00205 6,\u0020\u00205 -6,</string>

3

Nếu bạn đang cố gắng cung cấp Không gian giữa 2 chuỗi HOẶC Chuỗi tệp của Android thì hãy thực hiện việc này trong tệp chuỗi của bạn. Thực hiện điều này trước "Tên chuỗi" mà bạn muốn hiển thị. \ u0020 \ u0020 Ví dụ: \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 Thanh toán


2

xml: dấu cách = "bảo tồn"

Hoạt động như một lá bùa.

Chỉnh sửa: Sai. Trên thực tế, nó chỉ hoạt động khi nội dung chỉ bao gồm các khoảng trắng.

Liên kết


1

Nếu đầu ra là HTML, thì trong nhiều không gian HTML sẽ hiển thị dưới dạng một khoảng trắng. Để ngăn chặn điều này, hãy sử dụng các khoảng trắng không phá vỡ (xA0) thay vì các khoảng trắng thông thường.


1

Cách duy nhất tôi có thể nhận được nhiều khoảng trắng ở giữa chuỗi.

<string name="some_string">Before" &#x20; &#x20; &#x20;"After</string>

Before   After

0

Bạn muốn nó hiển thị như "-4, 5, -5, 6, -6," (hai khoảng trắng), bạn có thể thêm đoạn mã sau vào chuỗi tệp

<string name="spelatonertext3"> "-4,&#160;&#160;5,&#160;-5,&#160;&#160;6,&#160;&#160;-6,"</string>

  được hiển thị một không gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.