web-dev-qa-db-fra.com

Theme.AppCompat.Light.NoActionBar.FullScreen ne fonctionne pas avec Android 4.4

J'essaie de créer une application plein écran et lorsque je l'exécute dans un Acer Iconia 8, le titre ne s'affiche pas, mais les boutons d'action apparaissent toujours:

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" />

Et les styles:

<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>

ÉDITER:

Classe d'activité principale:

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()));
    }
}

J'ai ajouté le code de classe MainActivity pour répondre à la question.

13
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>

Fichier manifeste

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

J'avais ce problème avant. Pour autant que je me souvienne, j'ai dû le faire passer en plein écran par programmation:

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

0
BooleanCheese