Как установить отрицательную процентную маржу в PercentRelativeLayout?

Мне нужно установить отрицательную маржу в PercentRelativeLayout, но когда я пробую это в xml следующим образом, это не работает.

Приложение:layout_marginTopPercent="-10%"

Я попытался установить отрицательное поле программно, когда родительский показатель измерен, но PercentRelativeLayout сохраняет свои дочерние объекты LayoutParams и отменяет любые изменения, сделанные в них.

Установка отрицательной маржи в dp работает следующим образом, но мне абсолютно необходимо дать отрицательную маржу относительно родительского размера.

андроид:layout_margin="-10dp"

Как я могу это сделать, какие-либо идеи?

2 ответа

Я закончил перевод представления с отрицательным значением в зависимости от размера родителя при измерении родителя. Это не твердые решения, но это работает в моем случае.

protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    float marginTop = h / -10.0f;
    child.setTranslationY(marginTop);
}

PercentRelativeLayout, используя -1.0f в качестве значения по умолчанию для полей, а Помощник устанавливает только значение>= 0.0f. Не обязательно использовать этот макет в вашем случае; Вы можете установить marginTopPercent на -1.0f и поместить значение в java с MarginLayoutParams самостоятельно