アプリを全画面表示するために、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の例からほとんど変更されません。
編集:私は新しいプロジェクトを作成し、それをこの1つだけ変更しました。エラーログからの抜粋を次に示します。
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)...
注:Android 2.2(Froyo)を実行している古いSamsung SGH-T499Yでテストしています。
Android:theme="@Android:style/Theme.Holo.Light.NoActionBar.Fullscreen">
を適用しようとしているアクティビティがActionBarActivityを拡張しており、AppCompatテーマを適用する必要があるため、この問題が発生しています。
Activity
ではなくActionBarActivity
からアクティビティを拡張します
Javaクラスをそれに応じて少し変更する必要があるかもしれません。
ステータスバーも削除したい場合は、onCreateView
メソッドのsetContentView(layout)
の前にこれを使用してください
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
現在のテーマに次の属性を追加するだけです。
<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>
アクティビティタグのマニフェストファイルでこれを行うだけです
Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
私の場合、すべて正常に動作します。 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);
}
}
回答の更新アクティビティの開始時に白い画面がある場合に備えて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>
次のコードを使用して、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);
In onCreate
call
requestWindowFeature(Window.FEATURE_NO_TITLE); // for hiding title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
このドキュメント に従って、次のコードをonCreate
に追加します
getWindow().getDecorView().setSystemUiVisibility(SYSTEM_UI_FLAG_IMMERSIVE_STICKY |
SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION |
SYSTEM_UI_FLAG_LAYOUT_STABLE | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
私は最近、まったく同じ問題を抱えており、上記のRohit5k2のソリューションに加えて、次の投稿からも恩恵を受けました:
ステップ3では、MainActivity
はActivity
の代わりにActionBarActivity
を拡張します(Rohit5k2が述べたように)。 NoTitleBar
およびFullscreen
テーマ要素をAndroidManifest.xml
ファイルの正しい場所に配置することも非常に重要です(ステップ4を見てください)。