3

私は、preferences.xml と PreferenceActivity を使用して、自分のアプリで設定を定義しました。設定は、ScrollView のような方法で携帯電話に表示されます。常に垂直スクロールバーを常に表示したいと思います。Android 1.6 ではフェードアウトしませんが、Android 2.2 では約 1 秒後にフェードアウトします。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:scrollbarFadeDuration="0"

直感に反することはわかっていますが、完全に機能します。

于 2011-05-04T05:22:14.337 に答える
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:scrollbarAlwaysDrawVerticalTrack="true"でお試しくださいPreferenceScreen

于 2010-12-02T17:42:51.197 に答える