是否可以将PreferenceFragment自动向下滚动到所需的(设置)条目? [英] Is it possible to auto-scroll down a PreferenceFragment to a desired (settings) entry?

查看:128
本文介绍了是否可以将PreferenceFragment自动向下滚动到所需的(设置)条目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当需要在首选项中执行某些用户交互时,我正在使用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.

我找到了有关如何将视图滚动到ScrollViewListView的解决方案,但与PreferenceFragment无关.

I found solutions about how to scroll views into ScrollViews and ListViews, but nothing related to PreferenceFragments.

我的偏好设置如下:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆