web-dev-qa-db-ja.com

Theme.AppCompat.Light.NoActionBar.FullScreenがAndroid 4.4で動作しない

フルスクリーンアプリを作成しようとしています。AcerIconia 8で実行すると、タイトルは表示されませんが、アクションボタンは表示されたままです。

AndroidManifest.xml

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">
    <activity
        Android:name=".MainActivity"
        Android:windowSoftInputMode="adjustResize"
        Android:configChanges="orientation|keyboardHidden">

        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />
            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

<uses-permission Android:name="Android.permission.INTERNET" />

そしてスタイル:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
    </style>

    <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
       <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="Android:windowFullscreen">true</item>
        <item name="Android:windowContentOverlay">@null</item>
    </style>

</resources>

編集:

メインアクティビティクラス:

public class MainActivity extends AppCompatActivity {

    private Context context;

    private WebView webView;
    private LoginDialog dialog;
    private PinDialog pin;
    private RelativeLayout mainLayout;

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

        context = this;

        ClientCredentials.loadCredentials(context);

        mainLayout = (RelativeLayout)findViewById(R.id.mainLayout);
        Button loginButton = (Button)findViewById(R.id.loginButton);
        webView = (WebView)findViewById(R.id.webview);
        dialog = new LoginDialog(context);
        pin = new PinDialog(context, dialog);

        loginButton.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                if(ClientCredentials.getClientId() > 0 && ClientCredentials.getToken().equals("")) {
                    dialog.show();
                }
                else {
                    pin.show();
                }

                return false;
            }
        });

        pin.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                loadUrl();
            }
        });

        dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialog) {
                loadUrl();
            }
        });

        webView.setWebChromeClient(new WebChromeClient());
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        if(ClientCredentials.getClientId() > 0 || !ClientCredentials.getToken().equals("")) {
            loadUrl();
        }
        else {
            dialog.show();
        }
    }

    private void loadUrl() {
        webView.loadUrl(String.format("http://XXX?Address_Id=%d&Token=%s", ClientCredentials.getClientId(), ClientCredentials.getToken()));
    }
}

質問を完了するためにクラスMainActivityコードを追加しました。

12
Patrick

styles.xml

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
        <item name="Android:windowNoTitle">true</item>
        <item name="Android:windowActionBar">false</item>
        <item name="Android:windowFullscreen">true</item>
        <item name="Android:windowContentOverlay">@null</item>
</style>

マニフェストファイル

Android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
29
Aakash

以前にこの問題がありました。覚えている限りでは、プログラムでフルスクリーンにする必要がありました。

https://developer.Android.com/training/system-ui/immersive.html

0
BooleanCheese