Sab*_*bre 5 android android-preferences preferencefragment androidx
我已经迁移到 androidx.* 库,其中之一是新的首选项库:
androidx.preference:preference:1.1.0-alpha01- 它的最新版本。
如发行说明中 所述,iconSpaceReserved属性与 PreferenceCategories 无法正常工作已修复。
但看起来它默认设置为true。
我已经构建了演示项目来测试它。
首选项片段
import androidx.preference.PreferenceFragmentCompat;
public class SetttingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences);
}
}
Run Code Online (Sandbox Code Playgroud)
首选项.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory android:title="Category 1">
<Preference
android:key="pref1"
android:title="Preference 1" />
<Preference
android:key="pref2"
android:title="Preference 2" />
</PreferenceCategory>
<PreferenceCategory
android:title="Category 2"
app:iconSpaceReserved="false">
<Preference
android:key="pref3"
android:title="Preference 3" />
<Preference
android:key="pref4"
android:title="Preference 4"
app:iconSpaceReserved="false" />
</PreferenceCategory>
...
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
首选项主题根据需要设置。
样式文件
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
Run Code Online (Sandbox Code Playgroud)
截屏
当app:iconSpaceReserved=false手动设置时(如您在 PreferenceCategory 2 和 Preference 4 上看到的),它工作正常,但否则会保留图标空间。此外文档说,这是false在默认情况下:
默认情况下,当没有提供图标时,首选项图标视图可见性将设置为 GONE,因此该属性的默认值为 false。
如果未设置图标,它是该库中的新错误还是为图标留出空间的新功能?还是我做错了什么?
我知道解决方法:
编辑:
在查看了来源之后,我发现了下一件事。
PreferenceThemeOverlay -> anyPreferenceStyle 已设置属性
<item name="iconSpaceReserved">@bool/config_materialPreferenceIconSpaceReserved</item>
Run Code Online (Sandbox Code Playgroud)
指的是
values/values.xml
<bool name="config_materialPreferenceIconSpaceReserved">false</bool>
Run Code Online (Sandbox Code Playgroud)
和
values-sw360dp-v13/values-sw360dp-v13.xml
<bool name="config_materialPreferenceIconSpaceReserved">true</bool>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它被设置在true这里。
| 归档时间: |
|
| 查看次数: |
2472 次 |
| 最近记录: |