2014-09-07 6 views
0

Я осмотрелся и не смог найти решение этой проблемы. Да, это то, что было задано раньше, но ни одно из решений, которые я нашел, не исправило мою проблему.
Так что, в основном, моя проблема в том, что мне нужно два вида для выравнивания справа от их контейнера, один рядом с другим. Однако я не могу остановить их перекрытие.RelativeLayout выравнивание/позиционирование не работает

RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams((int) (screenWidth*0.30), LayoutParams.WRAP_CONTENT); 
param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
newSpinner.setLayoutParams(param); 
newSpinner.setId(-101); 

param = new RelativeLayout.LayoutParams((int) (screenWidth*0.10), LayoutParams.WRAP_CONTENT); 
param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
param.addRule(RelativeLayout.LEFT_OF, newSpinner.getId()); 
newButton.setLayoutParams(param); 

Приведенные выше результаты кода в этом: http://i.imgur.com/o1GlZLV.png

param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 

При удалении вышеуказанных результатов строки в этом: http://i.imgur.com/25vlmrw.png

Итак, что исправить?

+0

При дальнейшей проверке мой код отлично работает в портретном режиме, и это только пейзаж, где кнопка исчезает/перекрывается. – Grid32

+0

Добро пожаловать в [so]! Похоже, что вы отклонили изменение кем-то другим. Обратите внимание, что вы всегда можете редактировать свои собственные сообщения и одобрять предложенные изменения на свои должности, даже до достижения репутации 2000 года. –

ответ

0

Вы используете тот же объект 'param' для заклинания и кнопки. Попробуйте использовать как param1, так и param2 для каждого в первую очередь. Во-вторых попробуйте использовать

param.addRule(RelativeLayout.ALIGN_PARENT_LEFT); для одного элемента и param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); для других, чтобы избежать дублирования.

Попробуйте это решение. Создайте относительный макет с помощью param.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);, а затем добавьте прядильщик и кнопку в этом относительном расположении, используйте ALIGN_PARENT_RIGHT для одного элемента и LEFT_OF для другого. Также не забудьте использовать соответствующую ширину элементов, чтобы они не перекрывались.

+0

Ваше первое предложение отлично подходит для портрета, но '?' кнопка исчезает в ландшафтном режиме. Второе предложение не полезно, так как мне нужно, чтобы оба выровнялись вправо, так как у меня есть другие предметы слева. – Grid32

+0

Я обновил ответ, попробую 1-е и 3-е решения –

+0

Это сделало трюк для пейзажного режима :) Спасибо за помощь – Grid32

0

Удалить: param.addRule (RelativeLayout.ALIGN_PARENT_RIGHT);

От newButton.

+0

Как уже упоминалось в вопросе, я попытался это сделать. – Grid32

Смежные вопросы