是否可以将PreferenceFragment自动向下滚动到所需的(设置)条目? [英] Is it possible to auto-scroll down a PreferenceFragment to a desired (settings) entry?
问题描述
当需要在首选项中执行某些用户交互时,我正在使用Activity
中的startActivity(new Intent(this, SettingsActivity.class))
来调用应用程序的PreferenceFragment
.
我认为向下滚动以达到所涉及的偏好会很好.
I'm using startActivity(new Intent(this, SettingsActivity.class))
from an Activity
to call the PreferenceFragment
of my app when a certain user interaction is required to be performed into the preferences.
I think would be good to scroll down to reach the involved preference.
我找到了有关如何将视图滚动到ScrollView
和ListView
的解决方案,但与PreferenceFragment
无关.
I found solutions about how to scroll views into ScrollView
s and ListView
s, but nothing related to PreferenceFragment
s.
我的偏好设置如下:
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
public static class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
//preferences:
private Preference p
// [...]
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
//preference click listeners...
p = (Preference) findPreference("PR_NAME");
p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
// ...
return true;
}
});
// [...]
}
}
}
感谢您的任何建议
推荐答案
是的,虽然有可能,但它很hacky,因此也不建议使用.它假定首选项由id == android.R.id.list的ListView支持,因此当您引用该ListView时,可以调用setSelection(position)
yes, it is possible but it is hacky so nor recommended. it assumes that Preferences are backed by a ListView with id == android.R.id.list, so when you have reference to that ListView you can call setSelection(position)
这篇关于是否可以将PreferenceFragment自动向下滚动到所需的(设置)条目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!