Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
1

Что такое ems в editText?

31.10.2015, 22:11. Просмотров 5674. Ответов 13
Метки нет (Все метки)

Что такое ems в editText?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 22:11
Ответы с готовыми решениями:

Ввод в один EditText и авто-вычисление в двух других EditText
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех...

EditText смещается вниз при вводе текста, который занимает объём больше, чем EditText
EditText сещается вниз при вводе текста который занимает обём больше чем...

Динамическое создание edittext и обработка данных из edittext
Здравствуйте, мне нужна помощь, у меня есть таблица, где динамически создаются...

Что меньше грузит систему, TextView или EditText?
Подскажите что меньше будет грузить систему в бесконечном цикле Textview или...

Ребят, как сделать так, что бы фокус с одного editText переключался на другой?
Есть 4 editText как сделать так, что бы пользователь ввел один символ в один...

13
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
01.11.2015, 09:47 2
Еле нашёл
http://stackoverflow.com/questions/1...e-in-edit-text
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
01.11.2015, 12:43  [ТС] 3
Armagedo, я находил уже это определение, только все равно не понял до конца смысл данной фразы:
The em is simply the font size. In an element with a 2in font, 1em thus means 2in. Expressing sizes, such as margins and paddings, in em means they are related to the font size, and if the user has a big font (e.g., on a big screen) or a small font (e.g., on a handheld device), the sizes will be in proportion. Declarations such as 'text-indent: 1.5em' and 'margin: 1em' are extremely common in CSS.
C английским все хорошо у меня. Я пробовал ставить хоть 40em, но размер шрифта не менялся.
0
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
01.11.2015, 12:56 4
danek130995, он и не должен меняться, поскольку этот аттрибут не отвечает за это

Читаем первоисточник
Makes the TextView be exactly this many ems wide.
http://developer.android.com/referen...tr_android:ems
плюс добавочку http://stackoverflow.com/a/11177925

Думаю, теперь всё встанет на места.
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
01.11.2015, 13:29  [ТС] 5
Armagedo, читал, все равно не понятно.
Makes the TextView be exactly this many ems wide
"Заставляет текстВью быть точно этими многими ems"-вот так я пытаюсь перевести, чушь какая -то.
А здесь
android:ems or setEms(n) sets the width of a TextView to fit a text of n 'M' letters regardless of the actual text extension and text size.
Я не пойму, что значит 'M' letters? "Устанавливает ширину TextView чтобы она соответствовала тексту of n 'M' letters-что это значит? не смотря на фактическое расширение и размер текста".
0
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
01.11.2015, 13:42 6
Лучший ответ Сообщение было отмечено danek130995 как решение

Решение

Цитата Сообщение от danek130995 Посмотреть сообщение
C английским все хорошо у меня.
Но нужно немножко подтянуть

Makes the TextView be exactly this many ems wide
Устанавливает ширину TextView равной в точности данному числу ems.

Цитата Сообщение от danek130995 Посмотреть сообщение
Я не пойму, что значит 'M' letters?
Берется буква М английского алфавита в УЖЕ заданном размере шрифта.
Берётся ширина такой буквы М.
Это значение и есть 1ems.

n ems = n ширин буквы М
2
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
01.11.2015, 15:35  [ТС] 7
Armagedo, ааа. Ну а как же проследить изменения-то? Сколько не изменял число ems, ничего не меняется.
0
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
01.11.2015, 17:48 8
danek130995, это

but only when the layout_width is set to "wrap_content". Other layout_width values override the ems width setting.
есть?
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
01.11.2015, 18:19  [ТС] 9
Armagedo, а, точно. Тогда в данной ситуации(match_parent) этот параметр бесполезен вообще.
0
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
01.11.2015, 18:32 10
Цитата Сообщение от danek130995 Посмотреть сообщение
Тогда в данной ситуации(match_parent) этот параметр бесполезен вообще.
Не бесполезен, а вреден в данном конкретном случае , поскольку

Other layout_width values override the ems width setting
match_parent говорит, что данный вью должен занимать всю ширину родителя (за вычетом полей).
wrap_content говорит, что данный вью должен быть шириной, достаточной для того, чтобы вместить содержимое (плюс поля)
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
01.11.2015, 18:40  [ТС] 11
Armagedo, я знаю, что такое match_parent и wrap_content. Other layout_width values override the ems width setting- другие значения layout_width переопределяют ems_width. Если стоит match_parent, то в чем переопределение заключается? В том, что ничего не меняется?
0
Armagedo
210 / 210 / 60
Регистрация: 22.08.2014
Сообщений: 644
01.11.2015, 18:47 12
Переопределение означает в первую очередь отмену действия чего-то
1
danek130995
24 / 24 / 1
Регистрация: 25.05.2014
Сообщений: 949
01.11.2015, 22:24  [ТС] 13
Armagedo, так это понятно) А , ну понятно, match_parent отменяет действие ems. Спасибо
0
anem
12 / 12 / 6
Регистрация: 11.07.2015
Сообщений: 143
Вчера, 21:41 14
Извиняюсь, что поднимаю старую тему... Я правильно понял, что ems устанавливает ширину поля равной суммарной ширине указанного количества букв М?
Мне как раз нужно установить ширину поля равной ширине 10-ти букв (typeface = monospace). Сделал так:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
 
    <EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="8dp"
        android:ems="10"
        android:inputType="textNoSuggestions"
        android:text="MMMMMMMMMM"
        android:typeface="monospace"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Но в результате поле у меня получается занятым чуть больше чем на половину поля. Ошибку я нигде не нашел, поэтому единственным вариантом я рассматриваю недостаточное или неправильное понимание атрибута ems. В чем моя ошибка?
0
Вчера, 21:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
Вчера, 21:41

Что такое system_process
В Android Studio в отладке есть выбор запущенных пакетов + system_process - что...

Что такое flattenToShortString()
Что такое flattenToShortString() и flattenToString(). Расплющить в строку?...

Что такое setWakeMode
Вот что написано про это на startandroid: Метод setWakeMode позволяет ставить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru