Пользовательский макет addView проблема - PullRequest
0 голосов
/ 13 декабря 2011

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

См. Установка параметров для дочерних представлений RelativeLayout . Я хочу добавить кнопку слева. Кто-нибудь может мне помочь?

Мой код:

RelativeLayout.LayoutParams lp1=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
addView(pic,lp1);

RelativeLayout.LayoutParams lp2=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp2.addRule(RelativeLayout.RIGHT_OF,pic.getId());
addView(name,lp2);


RelativeLayout.LayoutParams lp3=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp3.addRule(RelativeLayout.LEFT_OF,pic.getId());
addView(deletebutton,lp3);

Что не так?

1 Ответ

1 голос
/ 13 декабря 2011

Посмотрите внимательно на то, что вы делаете.

Сначала вы добавляете «pic» в свой макет, который будет выровнен с вашим относительным макетом с левой стороны (поскольку вы не указали для него никаких правил).

В конце вы пытаетесь добавить вид с левой стороны, но для него нет места, так как ваш рисунок выровнен по левому краю.

У вас есть несколько выходов.

1) Добавьте правило для 'pic', который будет центрироваться в родительском элементе по горизонтали. Там может быть свободное место слева, чтобы поместиться кнопка.

2) Сначала добавьте кнопку (она будет выровнена по левому краю), затем добавьте рис и установите правило, которое будет справа от кнопок, а затем добавьте имя, как вы сделали.

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