Как я могу изменить высоту некоторых клавиш в ряду? - PullRequest
1 голос
/ 30 апреля 2010

Я создаю пользовательскую раскладку клавиатуры. SDK позволяет изменять ширину клавиш в строке (как в ThickButtons), но в идеале я хотел бы иметь возможность изменять как высоту, так и ширину клавиш в ряду (и при этом иметь ключи занимающие все доступное пространство. )

Еще один способ взглянуть на это состоит в том, что я хочу, чтобы некоторые ключи находились в нескольких смежных строках. Любые идеи помогут. Спасибо.

1 Ответ

0 голосов
/ 01 мая 2010

Будут ли все ключевые "ширины" и "высоты" кратны наименьшей ширине / высоте ключа? Если это так, вы можете вкладывать горизонтальные и вертикальные LinearLayouts по мере необходимости для описания клавиатуры, используя layout_weight, чтобы сделать ваши клавиши двойной ширины или двойной высоты.

Например, если я смотрю на клавиатуру на моей рабочей станции, то это, по сути, сетка клавиш 5x4, с двойными высокими клавишами «+» и «ввод» в крайнем правом столбце и двойной шириной 0 в нижнем левом положении (довольно стандартная конфигурация, обратитесь к вашей собственной в этом описании). Я могу сделать вертикальные линейные макеты для каждого из столбцов "поверх" 0 {numlock, 7,4,1} и {/, 8,5,2}. Затем их можно поместить в горизонтальную линейную схему, чтобы сгруппировать все 8 клавиш. Эту сборку можно комбинировать с кнопкой «0» в другой вертикальной компоновке, с весом «4» для 8-клавишной сборки и «1» для «0». Давайте назовем эту полную сборку из 9 ключей A. Теперь вы можете создавать вертикальные линейные макеты для {*, 9,6,3} и {-, +, enter}. Во втором из них дайте веса 2 каждому + и введите ключ. Наконец, используйте горизонтальную линейную компоновку, чтобы сгруппировать сборку A с двумя другими вертикальными компоновками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...