Ограничить высоту RelativeLayout для конкретного дочернего представления - PullRequest
0 голосов
/ 29 ноября 2011

Есть ли способ wrap_content для конкретного элемента внутри родительского элемента? Например, у меня есть что-то вроде следующего макета:

<RelativeLayout width:match height:wrap>
  <ImageView width:match height:wrap scale:fitXY />
  <LinearLayout width:wrap height:wrap>
</RelativeLayout>

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

Проблема здесь возникает, когда я помещаю это представление в другой RelativeLayout, где каждое представление выравнивается выше или ниже другого, чтобы заполнить потенциально изменяющееся суперпредставление. Похоже, что LinearLayout на самом деле не растягивал объекты для заполнения, поэтому я переключился на Relative, но когда я это сделал, описанный выше вид растянулся по вертикали, когда я хочу, чтобы он все еще соответствовал высоте представления изображения.

Есть ли хорошее решение этой проблемы?

1 Ответ

0 голосов
/ 29 ноября 2011

Вы можете попробовать поместить следующий (псевдокод) в метод onResume ():

if(myRelativeLayout.height > myImageView.height)
    myRelativeLayout.setHeight(myImageView.height);

Перед тем, как сделать это, необходимо позвонить myRelativeLayout.measure(), чтобы система знала, каков будет размер View s.

Просто идея для вас, дайте мне знать, если это работает:)

...