Androidでのcheckbox文字とチェックボックスの間隔設定の問題
881 ワード
初めてブログを書きましたが、実は数ヶ月前から書きたいと思っていました.怠け者です.新年の新しい気象は、自分にブログを書くように強要し、出会った問題と心得を記録することにした.
プロジェクトではログインインタフェースがあればcheckboxが一般的ですが、最近は私のプロジェクトでもcheckboxが使われています.原生のチェックボックスはあまりにも醜いので、直視に耐えられないので、android:button=「@drawable/cb_selector」というアイコンをカスタマイズしました.文字とアイコンの距離が近すぎて、android:paddingLeft=「5 dp」を付けた結果、4.1と4.2の携帯電話では効果が異なり、4.1の文字とチェックボックスが重なり、4.2の効果は正常であることが分かった.
多くの資料を調べたところ、元の2つのバージョンのpaddingleftの計算方法が異なり、4.1にはアイコンの幅が付いていないことがわかりました.4.2で計算するときにアイコンの幅が付いています.4.2以降のバージョンではそうです.どうやって解決しますか?最も考えやすい方法は、もちろんコードの中で現在のシステムのバージョンサイズを判断し、コード設定paddingです.
これはちょっと面倒なので、xmlレイアウトで設定する方法を見つけました.親測定が利用でき、表示効果は同じです.
プロジェクトではログインインタフェースがあればcheckboxが一般的ですが、最近は私のプロジェクトでもcheckboxが使われています.原生のチェックボックスはあまりにも醜いので、直視に耐えられないので、android:button=「@drawable/cb_selector」というアイコンをカスタマイズしました.文字とアイコンの距離が近すぎて、android:paddingLeft=「5 dp」を付けた結果、4.1と4.2の携帯電話では効果が異なり、4.1の文字とチェックボックスが重なり、4.2の効果は正常であることが分かった.
多くの資料を調べたところ、元の2つのバージョンのpaddingleftの計算方法が異なり、4.1にはアイコンの幅が付いていないことがわかりました.4.2で計算するときにアイコンの幅が付いています.4.2以降のバージョンではそうです.どうやって解決しますか?最も考えやすい方法は、もちろんコードの中で現在のシステムのバージョンサイズを判断し、コード設定paddingです.
if(getAndroidSDKVersion()<=16){//4.1.2
// padding
}
これはちょっと面倒なので、xmlレイアウトで設定する方法を見つけました.親測定が利用でき、表示効果は同じです.
android:button="@null"
android:drawableLeft="@drawable/cb_selector"
android:drawablePadding="5dp"
android:paddingLeft="0dp"