it-swarm.com.ru

Android: создание полноэкранного приложения

Какое самое простое изменение, которое я могу внести в новое пустое действие, созданное в последней версии Android Studio, чтобы приложение выглядело в полноэкранном режиме?

Я хочу создать полноэкранное приложение для Android. Я работаю с Android Studio . Этот пост предлагает добавить строку, например ...

Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

... в файл AndroidManifest.xml, как показано ниже:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
            package="com.lexogram.james.blackslate" >

            <application
                    Android:allowBackup="true"
                    Android:icon="@drawable/ic_launcher"
                    Android:label="@string/app_name"
                    Android:theme="@style/AppTheme" >
                    <activity
                            Android:name="com.lexogram.james.blackslate.MainActivity"
                            Android:label="@string/app_name"
                            Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
                            <intent-filter>
                                    <action Android:name="Android.intent.action.MAIN" />

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

    </manifest>

Когда я делаю это, приложение компилируется, но при запуске оно вылетает. Если я удалю строку, приложение будет работать нормально, но с панелью действий и строкой заголовка, как также отметили другие пользователи.

Это моя первая попытка создания приложения для Android, поэтому мое приложение практически не отличается от исходного примера Hello World.

Правка: Я создал новый проект, и внес только одно изменение в него. Вот выдержка из журнала ошибок:

FATAL EXCEPTION: main
    Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lexogram.james.test/com.lexogram.james.test.MainActivity}: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2669)...

ПРИМЕЧАНИЕ: я тестирую на старом Samsung SGH-T499Y, работающем под управлением Android 2.2 (Froyo)

33
James Newton

Вы получаете эту проблему, потому что действие, к которому вы пытаетесь применить Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">, расширяет ActionBarActivity, который требует применения темы AppCompat.

Расширьте свою активность с Activity, а не с ActionBarActivity

Возможно, вам придется немного изменить свой класс Java.

Если вы тоже хотите удалить строку состояния, используйте ее перед setContentView(layout) в методе onCreateView

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
72
Rohit5k2

Просто добавьте следующий атрибут в вашу текущую тему:

<item name="Android:windowFullscreen">true</item>

Например:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/orange</item>
    <item name="colorPrimaryDark">@Android:color/holo_orange_dark</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowFullscreen">true</item>
</style>
20
Asaf Pinhassi

просто сделайте это в файле манифеста в теге активности

Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
14
user3637297

в моем случае все работает нормально. Смотрите в logcat. Может быть, logcat покажет что-то, что поможет вам решить вашу проблему 

В любом случае вы можете попробовать сделать это программно:

 public class ActivityName extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // remove title
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.main);
        }
 }
8
DMan

Обновить ответ Я добавил Android:windowIsTranslucent, если у вас есть белый экран в начале действия 

просто создайте новый стиль в values ​​/ styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- to hide white screen in start of window -->
    <item name="Android:windowIsTranslucent">true</item>
    </style>

</resources>

из вашего AndroidManifest.xml добавить стиль вашей деятельности 

Android:theme="@style/AppTheme"

быть таким

<activity Android:name=".Splash"
            Android:theme="@style/AppTheme">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
7
Mina Fawzy

В onCreate вызов

requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);
2
Xar E Ahmer

Недавно у меня возникла точно такая же проблема, и я получил пользу от следующего поста (в дополнение к вышеприведенному решению Rohit5k2):

https://bsgconsultancy.wordpress.com/2015/09/13/convert-any-website-into-Android-application-by-using-Android-studio/

На шаге 3 MainActivity расширяет Activity вместо ActionBarActivity (как упоминалось в Rohit5k2). Помещение элементов темы NoTitleBar и Fullscreen в правильные места в файле AndroidManifest.xml также очень важно (см. Шаг 4).

0
aparkhills

Вы можете использовать следующие коды, чтобы иметь полную страницу в Android

Шаг 1: Создайте тему в разделе styles.xml

<style name="AppTheme.Fullscreen" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Шаг 2: Добавить тему на AndroidManifest.xml

<activity
Android:name=“.Activity”
Android:theme="@style/AppTheme.Fullscreen"/>

Шаг 3: раздел Java-кодов

Например, вы можете добавить следующие коды в метод onCreate ().

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
0
Matin Soleimani