12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
||||||||||||||||
1 | ||||||||||||||||
Как автоматически изменять размер текста в spinner в зависимости от размера экрана?15.02.2016, 13:45. Показов 4685. Ответов 16
Метки нет (Все метки)
Здравствуйте. В программе использую две темы светлую и темную:
Кликните здесь для просмотра всего текста
В них определены стили спиннера: Кликните здесь для просмотра всего текста
Ну и сам спиннер, например, с загруженным из ресурсов контентом: Кликните здесь для просмотра всего текста
Размер шрифта в спиннере использовался стандартный, по умолчанию. Сейчас адаптируя разметку под размеры -large и -extra-large понял, что необходимо менять размер шрифта spinner (да и не только) в зависимости от размера экрана текущего девайса. Ну например так для обычного размера - textSize у всех спиннеров должен быть равен 18dp, для -large = 30dp, для -extra-large = 50dp. Как это сделать автоматически в разметке/стиле или как то в одном месте в коде? Как то может быть через атрибуты. Подскажите пожалуйста, а то всю голову уже сломал! Я думаю с аналогичной проблемой разработчики сталкиваются часто и должно быть какое то красивое решение.
0
|
15.02.2016, 13:45 | |
Ответы с готовыми решениями:
16
При изменении размера QMainWindow, автоматически изменять размер QTableView Изменять размер формы в зависимости от текста в Label Изменять размер текста в SpeedButton в зависимости от размеров кнопки Изменить размер блока в зависимости от размера экрана |
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
|
15.02.2016, 13:52 | 2 |
так сделай как и для лаяутов, например папку values-large
и создай там файл styles.xml с нужными размерами шрифта я бы такие стили, которые для разных экранов - вынес в отдельный файл, ну например spinner_styles.xml и положил бы их по папкам
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|||||||||||
15.02.2016, 13:57 | 3 | ||||||||||
VV0lk, создаем папки values, values-large, values-xlarge в папке res. Кладем туда по файлу dimens.xml. В каждом пишем
2
|
Pablito
|
15.02.2016, 14:11
#4
|
Не по теме: да, я затупил, когда-то сам так советовал делать :)
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
||||||
15.02.2016, 14:12 [ТС] | 5 | |||||
Нет у спиннера, как такового свойства textSize. И вот такой способ результата не дает..
Кликните здесь для просмотра всего текста
Так вот в раскрытом состоянии размер шрифта поменялся, а вот в свернутом нет.. Видимо по той же причине: "Нет у спиннера, как такового свойства textSize."
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
|
15.02.2016, 14:19 [ТС] | 7 |
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
15.02.2016, 14:22 | 8 |
Никак. В этом случае используются стандартные вьюшки для списка и доступа к ним нет (ну может из кода и можно добраться, но зачем, если адаптер удобнее?).
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
|
15.02.2016, 14:34 [ТС] | 9 |
Хотя вот здесь http://stackoverflow.com/quest... not-change в 19 -ом сообщении говорят, что вроде как можно. Но что то так пока у меня не получилось.
0
|
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
|
|
15.02.2016, 14:43 | 10 |
Ну да, можно и так. Только зачем это все воротить, если 1 строкой можно воткнуть свою разметку?
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
|||||||||||
15.02.2016, 17:15 [ТС] | 11 | ||||||||||
Ну в принципе да, придется переделать все спинеры через адаптер отдельный spinner_item.xml и dimen у его textSize.
Добавлено через 2 часа 26 минут Сделал через:
Кликните здесь для просмотра всего текста
Получилось, размер шрифта поменялся, но пропал стиль оформления в развернутом состоянии, заданный в теме приложения...
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
||||||||||||||||
15.02.2016, 18:50 | 12 | |||||||||||||||
если я правильно понял задачу
1. создаем стили для спиннера и его выпадающего списка
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
||||||||||||||||
16.02.2016, 13:28 [ТС] | 13 | |||||||||||||||
Попробовал сделать так. Ну немножко изменив стили под свои нужды:
Кликните здесь для просмотра всего текста
Так вот, на фрагменте два спиннера, тот который помечен как <android.support.v7.widget.AppCompatSpinner /> Кликните здесь для просмотра всего текста
с внешним видом у него всё хорошо, но только он не открывается при нажатии! А вот обычный спиннер: Кликните здесь для просмотра всего текста
Он открывается нормально и выглядит как надо, за исключением стандартного треугольничка спиннера в нижнем правом углу, который напрягает. Скриншоты см. во вложении.
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
||||||
16.02.2016, 13:34 | 14 | |||||
зачем там p1 везде?
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
||||||
16.02.2016, 13:37 [ТС] | 15 | |||||
Потому что при создании этой разметки в стандартном дизайнере Xamarin Studio, она генерит примерно следующее:
Кликните здесь для просмотра всего текста
0
|
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
|
||||||
16.02.2016, 13:41 | 16 | |||||
тогда я сливаюсь
я вообще весь код который выкладываю не копипастю со стековерфлов, а проверяю на тестовых проектиках если вопрос интересный и эти все строки что выше я выложил - они рабочие, а как там xamarin-е х.з. в стиле приложения добавлены те две строчки?
0
|
12 / 2 / 1
Регистрация: 25.12.2011
Сообщений: 181
|
||||||||||||||||
16.02.2016, 13:49 [ТС] | 17 | |||||||||||||||
В том что они рабочие, я не сомневаюсь! Я пытаюсь понять, почему конкретно в моем случае они не работают.
Вот сейчас у меня в папке values-large лежит файл themes.xml в нем прописано: Кликните здесь для просмотра всего текста
и файл styles.xml Кликните здесь для просмотра всего текста
В файле разметки: Кликните здесь для просмотра всего текста
И видно что код работает, величина шрифта меняется, но только вот этот спиннер почему то стал некликабельным!... Как так?
0
|
16.02.2016, 13:49 | |
16.02.2016, 13:49 | |
Помогаю со студенческими работами здесь
17
Меняем цвет, размер и положение в зависимости от размера экрана Нужно изменять размер шрифта в ActiveX в зависимости от размера самого ActiveX Как сменить размер текста у Spinner Можно ли сделать размер текста зависимым от размера экрана? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |