PreferenceFragmentCompat的內部PreferenceScreen未顯示,或似乎忽略輕敲事件。內部PreferenceScreen不打開PreferenceFragmentCompat
我創建MyPreferenceFragment
這extends PreferenceFragmentCompat
public class MyPreferenceFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences);
}
}
然後我改變了我的主題,在styles.xml
像
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
最後創建我preferences.xml
文件中像
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference android:title="Check Me"/>
<PreferenceScreen android:title="My Screen"> <!-- This is not opening -->
<EditTextPreference android:title="Edit text" />
</PreferenceScreen>
</PreferenceScreen>
在build.gradle
我有添加既:活動
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
activity_main.xml中
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment"
android:name="com.mando.preferenceapp.MyPreferenceFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
測試上面的代碼,我不能開/進入偏好屏幕的
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'
代碼。我錯過了什麼嗎?爲什麼這不起作用?
發佈您的活動。 – Aryan
添加了活動,但請注意,如果我在xml中添加活動或使用FragmentManager並進行替換,則它沒有區別。如果首選項片段是ViewPager的一部分,則會發生相同的行爲。 – madlymad
如果我理解正確,你應該自己處理嵌套的PreferenceScreen。例如,如果將它添加到PreferenceFragmentCompat中,它將起作用:@Override public void onNavigateToScreen(PreferenceScreen preferenceScreen){setPreferenceScreen(preferenceScreen);}'雖然這顯然不會將新屏幕添加到後退按鈕。我假設他們希望我們使用此方法或OnPreferenceStartFragmentCallback創建Intents或交換片段。 – squirrel