0

この質問は、このスレッドを拡張します特定の遅延時間後に ActionBar と NavigationBar を非表示にする方法は?

これは私のアプリケーションで機能します。しかし、それは一度だけ実行されます。ボタンが押されるまで実行し続けるようにするにはどうすればよいですか (戻るボタン)

ところで、これは、写真を表示するときの Android の Gmail アプリのような photoViewer アプリ (の一部) です。

Update1: 実際には、actionBar を再び show() および hide() するための touchListener があります。だから私が欲しいのは、imageViewレイアウトにいるとき、アクションバーが3000ミリ秒で消えてから、タップしてshow()、3000ミリ秒後に再び消えるはずです。繰り返しますが、Gmail の Android アプリと同じように、メールから画像を読み込む場合

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); // overlay mode
        setContentView(R.layout.fullscreen_image);

        ActionBar actionBar = getActionBar();               
        actionBar.setCustomView(R.layout.actionbar_top);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);         


        // time delay to hide actionBar
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            @Override
            public void run() {
                // DO DELAYED STUFF
                getActionBar().hide();
                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
            }
        }, 3000); // e.g. 3000 milliseconds
....

    Button back = (Button)findViewById(R.id.btnBack);
    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();                
        }
    });
4

2 に答える 2

0

タイマーを OnCreate に配置すると、確実に 1 回だけ実行されます。ユーザーが画面を回転させたり、一時停止したりするたびに実行する場合は、onResume に入れます。しかし、popovitsj が示唆するように、onClick を配置することはおそらくあなたが望むものです

于 2013-11-07T20:16:03.730 に答える