Jak umieścić znak spacji w nazwie ciągu w XML?


174

zdefiniowałem kilka ciągów w strings.xmlpliku. Teraz muszę wstawić dodatkową spację między niektórymi liczbami w ciągu. Kiedy wpisuję dodatkowe znaki spacji, nie jest to wyświetlane w aplikacji.

Przed:

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

A jeśli wstawię dodatkowe miejsce w ten sposób:

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

Po prostu wygląda tak samo w aplikacji. Jak mogę wprowadzić znaki spacji w ciągu XML?


Cóż, wyglądało to tak samo na tej stronie ... :) Chodzi o to, że chcę trochę spacji między liczbami, jak to możliwe ..?
Andreas

Użyj formatowania kodu, aby zachować spacje (i <>zawartość) w SO. :)
Andrew Thompson

Odpowiedzi:


405

używać białych znaków w XML jako użycia ciągu &#160;. XML nie zajmie białych znaków tak, jak jest. obetnie białą przestrzeń przed jej ustawieniem. Dlatego używaj &#160;zamiast pojedynczej białej spacji


1
To nie działa z wrap_content widoku tekstowego, gdy spacja występuje na końcu tekstu. Widok tekstu nie zachowuje szerokości zajmowanej przez znak „spacji”.
toobsco42

28
Doda to nierozerwalną przestrzeń. Różni się od zwykłej przestrzeni i nie będzie działać dobrze z niektórymi funkcjami ( normalize-spacena przykład XPath ). Spróbuj użyć &#032;(zwykła spacja) zamiast &#160;. @ toobsco42
shwartz

Musiałem użyć &#160;zamiast \u0020wstawiania spacji po numerze kierunkowym w numerze telefonu. W przeciwnym razie numer telefonu był zawijany na końcu wiersza po nawiasie końcowym numeru kierunkowego.
mharper

& # 032; jest ok, jeśli potrzebujesz 1 miejsca. Jeśli wstawisz kilka z nich (& # 032; & # 032; ...), zostaną one przycięte do 1. Myślę, że zachowuje się tak samo, jak zwykłe puste miejsce, więc wydaje się bezużyteczne. Jeśli zostanie znaleziona również sugestia dotycząca & # 009; (powinien być znakiem tabulacji): nic nie wyświetla. & # 160; działa dobrze, właśnie tego potrzebuję, dzięki ρяσѕρєя K.
herve-guerin

57

Wstaw \ u0020 bezpośrednio w XML dla pustego miejsca, które chcesz zachować.

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

24

Android nie obsługuje zachowywania spacji na końcu ciągu w pliku String.xml, więc jeśli chcesz wstawić spację po ciągu, musisz użyć tego unikodu między słowami.

\ u0020

Jest to znak spacji Unicode.


To zadziałało dla mnie przy użyciu Android Studio 3.6.2 skompilowanego do Androida 4.4. Dzięki.
Miłość i pokój - Joe Codeswell

11

Jak już wspomniano, prawidłowym sposobem na umieszczenie spacji w pliku XML jest użycie \u0020znaku Unicode dla spacji.

Przykład:

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

Inne sugestie mówią o używaniu &#160;lub, &#032;ale ma to dwie wady. Pierwszą wadą jest to, że są to znaki ASCII, więc polegasz na czymś takim jak TextView, aby je przeanalizować. Drugą wadą jest to, że &#160;czasami może powodować dziwne zawijanie w TextViews.


7

Warianty przestrzenne:

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

| SPACJA | CIENKA PRZESTRZEŃ | PRZESTRZEŃ NA WŁOSY |


1
To najsłodszy i najwspanialszy
Abdul Waheed

6

To również powinno działać. Użyj cudzysłowów, aby zachować miejsce

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

1
Moim zdaniem to najczystsza (najłatwiejsza do odczytania) odpowiedź. Niestety większość ludzi prawdopodobnie nie schodzi tak daleko na liście odpowiedzi, zanim przejdzie dalej.
DavidR

5

Umieść &#160;w pliku string.xml, aby wskazać pojedynczą spację w projekcie systemu Android.


5

Możesz również użyć następujących

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

Wpisz cokolwiek w " "(cudzysłów) spacją i powinno działać


1
Umieścić coś w "„(cytat) z przestrzeni, a to powinno działać: to nie działa
Krunal Shah

3

Jak na twoje pytanie, jeśli chcesz dodać spacje więcej niż jedną w zasobach ciągów, istnieje wiele opcji dodawania spacji między znakami lub słowami:

1.Domyślnie jedno miejsce, które można dodać bezpośrednio w pliku zasobów ciągu, działa dobrze. ale jeśli dasz więcej niż jedną spację w pliku zasobów ciągu, to wyklucza te spacje. np. -4, 5, -5, 6, -6,

  1. Jeśli chcesz dodać więcej dodatkowych spacji w pliku zasobów ciągu, użyj: - i. dodawanie Unicode po znaku, np

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

ii.Możesz użyć „\ u0020”

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

3

Jeśli próbujesz podać spację między 2 ciągami lub w pliku ciągów Androida, zrób to w swoim pliku ciągu. Zaimplementuj to przed swoją „nazwą ciągu”, którą chcesz pokazać. \ u0020 \ u0020 Np. \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020Płatność


2

xml: space = "zachowaj"

Działa jak marzenie.

Edycja: źle. W rzeczywistości działa tylko wtedy, gdy zawartość składa się tylko z białych spacji.

Połączyć


1

Jeśli dane wyjściowe to HTML, w HTML wiele spacji jest wyświetlanych jako pojedyncza spacja. Aby temu zapobiec, użyj nierozdzielających spacji (xA0) zamiast zwykłych spacji.


1

Jedyny sposób, w jaki mogłem uzyskać wiele spacji w środku ciągu.

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

Before   After

0

Jeśli chcesz, aby wyglądał jak „-4, 5, -5, 6, -6” (dwie spacje), możesz dodać następujący kod do string.xml

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

  wyświetla jedną spację.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.