我已使用preferences.xml和PreferenceActivity在我的应用中定义了首选项。这些设置以类似ScrollView的方式显示在手机中。我想一直显示垂直滚动条。在Android 1.6中,它们不会逐渐消失,但在Android 2.2中,它会在大约一秒后逐渐消失。在ScrollView中,我可以使用android:scrollbarAlwaysDrawVerticalTrack或android:scrollbarDefaultDelayBeforeFade来控制它。如何使用首选项小部件执行此操作?
/ P
答案 0 :(得分:2)
这适用于我的Android 2.3.3。
public class MyPreferenceActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getListView().setScrollbarFadingEnabled(false);
...
}
...
}
答案 1 :(得分:1)
尝试这个,因为当我想为TextView执行此操作时,上述建议对我不起作用:
TextView.setScrollbarFadingEnabled(false);
答案 2 :(得分:0)
在android:scrollbarAlwaysDrawVerticalTrack="true"
中尝试PreferenceScreen
。
答案 3 :(得分: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
}
所以你有它。请注意,投掷可以吃触摸事件,它很少但有点烦人 - 但可行。
答案 4 :(得分:0)
将它放在要始终显示滚动条的滚动条中:
android:scrollbarFadeDuration="0"
违反直觉,我知道,但它完美无缺。