1

没入モードとも呼ばれる全画面表示のアクティビティを実装しようとしています。Androidのドキュメントで、「没入型フルスクリーンモードが有効になっている場合、アクティビティは引き続きすべてのタッチイベントを受け取ります。ユーザーは、システムバーが通常表示される領域に沿って内側にスワイプしてシステムバーを表示できます。」エミュレーターを使用してAndroidスタジオで多くの例を試しました。また、独自のコードで没入型フルスクリーンモードに入ることができますが、そこから終了できません。アクションバーを再表示するための内側へのスワイプジェスチャのみですが、できません。仮想デバイスをシャットダウンして再度開いた後も、初めて没入モードに入ったときに、リマインダー バブルが表示されないことに気付きました。これがコード、gradle です (使用される avd は lollipop API レベル 21 です):

package net.missionaridellavia.gospelway.activity;

import android.os.Bundle;
import android.view.View;

import net.missionaridellavia.gospelway.R;


public class MainActivity extends AbstractCustomActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.container);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}
}

package net.missionaridellavia.gospelway.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.view.Menu;
import android.view.MenuItem;

import net.missionaridellavia.gospelway.R;
import net.missionaridellavia.gospelway.service.DebuggerActivity;

public class AbstractCustomActivity extends DebuggerActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //
        final ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            case R.id.action_settings:
                Intent intentSettings = new Intent(getApplicationContext(),
                        SettingsActivity.class);
                startActivity(intentSettings);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

build.gradle は次のとおりです。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "net.missionaridellavia.gospelway"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
}
4

0 に答える 0