CheckBox コントロールのチェックボックスと関連するテキストの間にパディングを追加する簡単な方法はありますか?
ラベルが複数行なので、先頭にスペースを追加することはできません。
現状では、テキストがチェックボックスに近すぎます。
ベストアンサー1
自分の質問に答えるのは嫌ですが、この場合は答える必要があると思います。調べてみると、@Falmarri の回答は正しかったようです。問題は、Android の CheckBox コントロールが、テキストを配置するために既に android:paddingLeft プロパティを使用していることです。
赤い線はチェックボックス全体のpaddingLeftオフセット値を示しています。
XML レイアウトでパディングを上書きすると、レイアウトが台無しになります。paddingLeft="0" に設定すると、次のようになります。
結局、XML ではこれを修正できないことがわかりました。コードで行う必要があります。以下は、ハードコードされたパディングを 10dp 増加させたスニペットです。
final float scale = this.getResources().getDisplayMetrics().density;
checkBox.setPadding(checkBox.getPaddingLeft() + (int)(10.0f * scale + 0.5f),
checkBox.getPaddingTop(),
checkBox.getPaddingRight(),
checkBox.getPaddingBottom());
これにより、次のようになります。緑の線はパディングの増加です。デバイスによってチェックボックスに異なる描画可能オブジェクトが使用される可能性があるため、値をハードコーディングするよりも安全です。
更新 - 下記の回答で最近言及されているように、この動作は Jelly Bean (4.2) で変更されたようです。アプリはどのバージョンで実行されているかを確認し、適切な方法を使用する必要があります。
4.3 以降では、単に padding_left を設定するだけです。詳細については、htafoya の回答を参照してください。