6

LinearLayout の直接の子である ImageView を少し左にシフトする必要があります。

何が起こるか: ビューはシフトされます (Android レイアウト マネージャーを使用して、「バウンディング ボックス」がシフトされていることがわかります) が、ドローアブルは同じ場所に保持されます。

また、マージンを十分に低く設定すると、ドローアブルは右側でカットされます。

ここに画像の説明を入力

どうしてこれなの?何かアドバイス?

  • 明確化: 画像を左にシフトする必要があります。これは、含まれているレイアウトの境界から少し外れていることを意味します。
4

3 に答える 3

4

要素が親の境界の外に出ると、要素は常にクリップされるようです(clipChildren = falseでも)。

解決策は、シフトする項目以外のすべての追加のコンテナー レイアウトを作成することです。次に、コンテナのレイアウトを反対方向にシフトします。

たとえば、-10dip をシフトするには:

<Original container ...>
    <Item to be shifted/>
    <New container with margin 10dip>
         <Previous content of Original container ... />
    </New container with margin 10dip>
</Original container>
于 2012-08-23T21:14:34.717 に答える
3

コンテナに十分なパディングがある場合は、clipToPaddingfalseに設定して、負のマージンを使用できます。

于 2013-10-17T15:20:23.877 に答える
1

なぜ負のマージンを使用するのですか? 画像をシフトしたい方向に対して ImageView の反対側にもう少しプラスを使用します。つまり、画像を左にシフトしたい場合は、右により多くのプラスのマージンを使用します。

于 2012-04-20T12:34:09.557 に答える