2016-03-15 4 views
0

У меня есть метод, который создает кнопки с фиксированным размером ширины и высоты. Чтобы создать кнопки, я использую шаблон layout.xaml. Шаблон кнопки будет вызываться по команде:добавление кнопок в gridlayout программно и заданная ширина и высота в процентах

var btn = LayoutInflater.Inflate(Resource.Layout.btn, null); 

Во время метода кнопки получают специальный текст и цвет. В конце кнопки настройки кнопка будет добавлена ​​к GridLayout с помощью следующего кода:

var pari = new RelativeLayout.LayoutParams(widthbutton, heightbutton) 
RunOnUiThread(() => gridlayout.AddView(val.Value, pari)); 

widthbutton и heightbutton просто номер исправления. Мой вопрос: я хочу установить ширину и размер кнопок в зависимости от размера gridlayout. Итак, как установить размер кнопок в процентах?

+0

Если вы хотите изменить размер изображения в соответствии с размером экрана, попробуйте использовать «Заполнение». используйте «wrap_content» для высоты и ширины. Не указывайте точные цифры, чтобы они не изменяли их размер. – Devraj

ответ

0

Если вы хотите совместить свои кнопки с шириной и высотой GridLayout, вы можете использовать match_parent в соответствии с высотой и шириной gridLayout. Таким образом, это будет как ...

var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 
     LayoutParams.MATCH_PARENT, 0.5f); 

Конструктор RelativeLayout проходит это вес, 0.5f означает половину отведенного места для вашего экземпляра. Управление этим способом позволит вам контролировать как ширину, так и высоту компонента пользовательского интерфейса.

Затем добавьте его в свой интерфейс. Приветствия

EDITED

Вот как на самом деле добавить относительное расположение в вашем UI

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT.......); 

мой вопрос .. что делает вар Pari на самом деле держать? Если это не-ui-компонент (Not RelativeLayout type), то вы не можете добавить его в свой пользовательский интерфейс. Я действительно дал предыдущее решение/предложение, думая, что вы, возможно, знаете об этом. Во всяком случае, держаться подальше от дальнейшего предположения, возможно, это будет лучше, чтобы увидеть ошибки первых :) Приветствия

+0

Любая идея: Почему я не могу использовать LayoutParams? – Sunny

0

Я получаю компиляции ошибки говоря «Имя„LayoutParams“не существует в текущем контексте» при изменении команда:

var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 0.5f); 

Я что-то пропустил?

0

@ibtehaz: pari содержит relativelayout, который имеет настраиваемый textView в нем. Это относительное отклонение будет завышено методом, вызванным методом OnCreate. После того, как я определяю свои кнопки с информацией, я теперь изменяю заполнение релятивирования и получаю, например. сетка, показывающая 4 * 4 (строки \ столбцы), что я и хочу. Прокладка может быть изменена:

btn.SetPadding(10, 18, 10, 18); 

Это все еще не то решение, которое я изначально хотел, но на данный момент он делает то, что должен. Спасибо всем за вашу помощь