Как установить ширину макета кнопки во время выполнения? - PullRequest
2 голосов
/ 15 октября 2010

Я создаю удаленное приложение, поэтому мне нужно различное количество кнопок, сгруппированных по представлениям таблиц и таблиц.

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

Но есть кнопки, которые я должен создать во время выполнения.Чтобы заставить их вести себя так же, как и фиксированные, мне нужно присвоить значения ширины макета, -height и -weight.

Я искал всю документацию, но там это всегда делается в XML, нетСлово о процедурах выполнения / сопоставления.

Возможно ли это вообще?Как еще можно создать сетку кнопок для всех сторон?

Большое спасибо!

1 Ответ

4 голосов
/ 15 октября 2010

Кнопка должна наследовать setWidth(int pixels) от TextView (поскольку она расширяет ее). Вы пытались использовать это? E.g.:

myButton.setWidth(100);
myButton.setHeight(50);
//Now myButton is 100px wide and 50px tall

Убедитесь, что раскрыли раскрывающийся список «Унаследованные методы» при поиске методов на странице Кнопка в документации. Вы также можете расширить «Унаследованные атрибуты».

Редактировать: Хорошо, я укушу - если вы хотите сохранить независимость экрана, вам нужно будет использовать единицы измерения падения. Документы обсуждают это здесь , но это будет что-то вроде следующего:

//Find screen density scale factor
final float scale = getContext().getResources().getDisplayMetrics().density;

int width = (int)(100 * scale) // Or whatever width you want
int height = (int)(50 * scale) // Or whatever height you want
myButton.setWidth(width);
myButton.setHeight(height);

Примечание : Это пример. Это не предназначено для производственного кода. У вас, вероятно, нет кнопки с именем myButton. Пожалуйста, адаптируйте это к вашим конкретным потребностям или прочитайте связанную документацию для получения дополнительной помощи и т. Д.

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