Всегда показывать полосы прокрутки для PreferenceScreen - PullRequest
2 голосов
/ 02 декабря 2010

Я определил предпочтения в моем приложении, используя Preferences.xml и PreferenceActivity.Настройки представлены в телефоне в стиле ScrollView.Я хотел бы всегда показывать вертикальные полосы прокрутки.В Android 1.6 они не исчезают, но в Android 2.2 они исчезают примерно через секунду.В ScrollView я могу управлять этим с помощью android: scrollbarAlwaysDrawVerticalTrack или android: scrollbarDefaultDelayBeforeFade.Как я могу сделать это с помощью виджета настроек?

/ P

Ответы [ 5 ]

2 голосов
/ 22 декабря 2012

Это сработало для моего Android 2.3.3.

public class MyPreferenceActivity extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getListView().setScrollbarFadingEnabled(false);
        ...
    }
    ...
}
1 голос
/ 23 апреля 2011

Попробуйте, так как приведенные выше предложения не сработали, когда я хотел сделать это для TextView:

TextView.setScrollbarFadingEnabled(false);
0 голосов
/ 04 мая 2011

Поместите это в скроллер, для которого вы хотите постоянно показывать полосы прокрутки:

android:scrollbarFadeDuration="0"

Противопоказано, я знаю, но оно работает отлично.

0 голосов
/ 18 апреля 2011

Так, эй, это очень уродливое решение, но оно короткое и оно работает.

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

}

Итак, вот оно. Обратите внимание, что бросок может есть события касания, это редко, но немного раздражает - но выполнимо.

0 голосов
/ 02 декабря 2010

Попробуйте android:scrollbarAlwaysDrawVerticalTrack="true" в PreferenceScreen.

...