Android:PreferenceFragment仅显示第一个首选项
作者:互联网
我在Android中加载PreferenceFragment时遇到问题.在这一点上,它是一个非常基本的实现,我希望稍后在它工作时进行扩展.
问题是导航到SettingsFragment后只显示第一个首选项.
我没有收到任何错误,但是logcat向我展示了这个:
W / PathParser:点距离太远4.000000596046461
我搜索了这个,但没有任何有用的解决方案.
代码如下:
通过NavigationDrawer进行MainActivity导航
navigate()是使用FragmentManager的通用函数
case R.id.nav_settings:
navigate(new SettingsFragment(), "settingsFragment", false);
break;
SettingsFragment
public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
public SettingsFragment() { }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) { }
}
prefences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreference
android:key="switch_notifications"
android:title="Notifications"
android:summary="Receive notifications"
android:defaultValue="true" >
</SwitchPreference>
<CheckBoxPreference
android:key="switch_notifications2"
android:title="Notifications"
android:summary="Receive notifications"
android:defaultValue="true" >
</CheckBoxPreference>
</PreferenceScreen>
截图
左:实际输出|右:预览
提前致谢!
尼尔斯
解决方法:
对不起,这可能不是一个答案(暂无评论),更像是洞察力.
只是想指出它在我的设备(oneplus3)上正常工作,并且在nexus 5模拟器中似乎正确显示.
我的猜测:可能是某种程度上父活动限制了片段的输出?例如,如果我在父级上设置足够高的paddingBottom,我会得到与左侧图片类似的结果.
如果没有,它可能是一些奇怪的设备特定的bug.也许你可以提供有关设备,屏幕尺寸,Android版本等的更多信息.
标签:android,sharedpreferences,android-preferences,preferencefragment,preferencescree 来源: https://codeday.me/bug/20190623/1266656.html