5

TransitionDrawable があります。2 つの状態は両方とも 9 つのパッチであり、コンテンツ領域が定義されています。問題は、利益率が高すぎることです。実際には、本来あるべき利益の 2 倍になっています。2 つの 9 パッチのマージンを合計しているようです。

これらの 9 つのパッチの 1 つを背景として直接設定し、TransitionDrawable を使用しない場合、マージンは機能するはずなので、9 つのパッチは間違いなく正しいです。

誰もこのような問題に遭遇しましたか?

編集:コンテンツ領域をアセットのフルサイズに設定し、xml でパディングを定義すると機能します。そうしないと、常にマージンが間違ってしまいます。これは Android のバグのようで、それが唯一の解決策のようですが、これを回避するもっと良い方法があるかもしれません :/

4

1 に答える 1

3

ええ、あなたは正しいです。本当に迷惑です。

あなたが提案したように、ハードコーディングされた負のパディングを使用しfirst_nine_patchて、これまでの 9 パッチのパディングを補正します。

<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/first_nine_patch" />
    <item android:drawable="@drawable/second_nine_patch"
        android:top="-7dp"
        android:right="-16dp"
        android:bottom="-8dp"
        android:left="-4dp" >
    </item>
</transition>
于 2014-04-30T13:46:54.490 に答える