3

我使用preferences.xml 和PreferenceActivity 在我的应用程序中定义了首选项。设置以类似 ScrollView 的方式呈现在手机中。我想一直显示垂直滚动条。在 Android 1.6 中,它们不会消失,但在 Android 2.2 中,它们会在大约一秒钟后消失。在 ScrollView 中,我可以使用 android:scrollbarAlwaysDrawVerticalTrack 或 android:scrollbarDefaultDelayBeforeFade 来控制它。如何使用首选项小部件执行此操作?

/P

4

5 回答 5

2

这适用于我的 Android 2.3.3 。

public class MyPreferenceActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getListView().setScrollbarFadingEnabled(false);
        ...
    }
    ...
}
于 2012-12-22T09:06:37.683 回答
1

试试这个,因为当我想为 TextView 执行此操作时,上述建议对我不起作用:

TextView.setScrollbarFadingEnabled(false);
于 2011-04-22T20:24:43.397 回答
0

在. android:scrollbarAlwaysDrawVerticalTrack="true"_PreferenceScreen

于 2010-12-02T17:42:51.197 回答
0

所以嘿,这是一个非常丑陋的解决方案,但它很短并且有效。

public class PreferenceActivity extends Activity {
//Sorry for stupid variable names, couldn't be bothered to be smart
    private ScrollView svOptions;
    private Runnable _run_sb_on;
    private final Handler _handle_sb_on = new Handler(); 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.preference);

        svOptions = (ScrollView) findViewById(R.id.svOptions);
        _run_sb_on = new Runnable() { //i hate you google for making me write crap code ! 
            public void run() {
                svOptions.fling(0); //don't move it, just keep it alive
                _handle_sb_on.postDelayed(this, 300); //300 is the timeout of the fader 
            }
        }; 
        _handle_sb_on.post(_run_sb_on);
    }

    //  etc

}

所以你有它。请注意,投掷可以吃触摸事件,它很少见但有点烦人 - 但可行。

于 2011-04-18T07:17:13.560 回答
0

把它放在你想要一直显示滚动条的滚动条中:

android:scrollbarFadeDuration="0"

违反直觉,我知道,但它工作得很好。

于 2011-05-04T05:22:14.337 回答