1

PercentRelativeLayout で負のマージンを設定する必要がありますが、次のように xml で試してみると機能しません。

app:layout_marginTopPercent="-10%"

親が測定されるときにプログラムで負のマージンを設定しようとしましたが、PercentRelativeLayout はその子の LayoutParams を保持し、それらに加えられた変更を元に戻します。

dp で負のマージンを設定すると、次のように機能しますが、親のサイズに対して負のマージンを与える必要があります。

android:layout_margin="-10dp"

どうすればいいですか、アイデアはありますか?

4

2 に答える 2

0

マージンのデフォルト値として -1.0f を使用する PercentRelativeLayout と、ヘルパーのみが値 >= 0.0f を設定する場合、このレイアウトを使用する必要はありません。marginTopPercent を -1.0f に設定し、自分で MarginLayoutParams を使用して値を Java に入れることができます。

于 2015-10-27T08:01:35.747 に答える
0

親が測定されたときに、親のサイズに応じて負の値でビューを翻訳することになりました。それは確かな解決策ではありませんが、私の場合はうまくいきます。

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);
}
于 2015-10-13T09:28:25.823 に答える