ListView
にArrayAdapter
が入力されています。アイテムには、単一のTextView
レイアウトのみを使用します。一部の行に複合ドローアブルを設定したい。
質問:TextView
に含まれる実際のテキストにパディングを設定して、複合ドローアブルにもパディングが適用されないようにする方法はありますか?他の解決策は、テキストの幅をロックすることです。レイアウトにImageViews
を追加する必要がありますか?
前もって感謝します。
この投稿に出くわした誰かが答えを見つけることができるように、私はこれを答えとして投稿しています。
テキストのみにパディングを設定する直接的な方法はありませんが、TextView
全体にpositiveパディングを設定し、ドローアブルにnegativeパディングを設定できます。 。
非常に簡単
Android:drawablePadding = "5dp"
方向に応じて自動的にパディングを使用します
Gioの推測を改善します。これはおそらく古いAPI/SDK用です...
TL:DR-適用するだけです Android:drawablePadding
画像とテキストの間の距離を広げます。
説明: Android:drawablePadding
CompoundDrawable
と元のView
の間にパディングを適用するようになりました。この場合、テキストを含むTextViewです。
Android:padding
および修飾子は、すべての化合物を含むグループ全体に適用されるようになりました。
ネガティブポジティブハックを行うことはもはや機能しないようです。
したがって、ドローアブルの位置(drawableTop/Left/...)に応じて、パディングはドローアブルのすぐ隣、つまり2つの要素の間に反対方向に適用されます。たとえば、左側に配置されたドローアブルにdrawablePadding="10dp"
を適用すると、TextViewの左側にpaddingRight="10dp"
を使用して個々のImageView
を設定するのと同様の効果があります(少なくともパディングに関して)。