私はPreferenceFragmentCompat
をAndroidサポートライブラリから使用しています。私は奇妙な問題に遭遇しました。フラグメントがロードされると、私が使用しているSwitchPreference
要素のスイッチがテキストの横に正しく表示されますが、これは間違った場所です。 1つのスイッチをタップするかスクロールしてスイッチが見えない場合は、それ自体が修正されます。注:これは負荷にAPI 18タップするまでSwitchPreferenceのレイアウトが正しくない
API 25に発生しますが、ない:
タップした後またはスクロール:
何が起こっている上の任意の考えを持っていますに?どんな助けもありがとう!ここで
は、私がやっていることです:
-
は
- が変更された(そして最終的に削除)
SwitchPreferenceCompat
- に切り替えのstyles.xml
- のカスタムテーマは「doesnのスイッチの小さなセットを作成しt画面を埋める。興味深いのは、画面が環境設定で満たされていないと、レイアウトがすばらしく見えるということです。 (スクロールはそれを修正しないようにそれが働くだろう期待して)再描画を強制するフラグメントのビューに
invalidate()
呼び出さ - (動作しませんでした全幅することを強制するためにテキストにスペースの束を追加しました......実際に期間の束のようなテキストしかし笑作品を行います)
コード()Kotlinにプリファレンスを作成するには:
class PreferencesFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener {
override fun onCreatePreferences(bundle: Bundle?, s: String?) {
val deviceCategory = PreferenceCategory(activity)
deviceCategory.title = activity.getString(R.string.preferences_Device_Defaults)
preferenceScreen.addPreference(deviceCategory)
val clockPref = SwitchPreference(activity)
clockPref.title = activity.getString(R.string.preferences_Automatic_clock_synchronization)
clockPref.isChecked = true
clockPref.key = "clockSync"
deviceCategory.addPreference(clockPref)
// Add more preferences....
val unitCategory = PreferenceCategory(activity)
unitCategory.title = activity.getString(R.string.preferences_Unit_Defaults)
preferenceScreen.addPreference(unitCategory)
val runCellTestOnConnect = SwitchPreference(activity)
runCellTestOnConnect.title = activity.getString(R.string.preferences_Cell_network_check)
runCellTestOnConnect.isChecked = true
runCellTestOnConnect.key = "runCellTestOnConnect"
unitCategory(runCellTestOnConnect)
// Add more preferences....
}
}