スプラッシュスクリーン、マップ、およびいくつかの通常のスクリーンを備えたシンプルなデモアプリケーションを開発しました。
ロゴを含むアクションバーが上部にあります。私の携帯電話(Galaxy s1 I9000 V2.3)ではすべて正常に見えますが、Galaxy s2 v4でテストすると、アクションバーがスプラッシュ画面とマップ画面にも表示されます。
SpalshとmapアクティビティはActionBarActivityからも継承していません。どのようにそれを可能にし、どうすればそれを消滅させることができますか?
マニフェスト:
<application
Android:allowBackup="true"
Android:icon="@drawable/ic_launcher"
Android:theme="@style/Theme.AppCompat.Light" >
<activity
Android:name=".HomeActivity"
Android:icon="@drawable/Android_logo"
Android:label=""
Android:logo="@drawable/Android_logo" >
<!--
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
<activity
Android:name=".MapActivity"
Android:label="" >
</activity>
<activity
Android:name=".PackageActivity"
Android:icon="@drawable/Android_logo"
Android:label=""
Android:logo="@drawable/Android_logo" >
</activity>
<activity
Android:name=".SplashActivity"
Android:label="" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
MapActivityの定義(長いため、定義のみを含めました):
public class MapActivity extends FragmentActivity implements LocationListener
スプラッシュアクティビティ:
import Android.app.Activity;
import Android.content.Intent;
import Android.os.Bundle;
import Android.os.Handler;
import Android.support.v7.app.ActionBar;
import Android.support.v7.app.ActionBarActivity;
public class SplashActivity extends Activity{
private static final long SPLASH_DISPLAY_LENGTH = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGTH);
}
}
AndroidManifest.xml
のアクティビティのテーマで次を適用します。
<activity Android:name=".Activity"
Android:label="@string/app_name"
Android:theme="@Android:style/Theme.NoTitleBar">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
これでうまくいくはずです。
特定のアクティビティでhideを実行する方法について尋ねているので、これが必要です:
getSupportActionBar().hide();
1. manifest.xml
ファイルに移動します。
2 .Find
、アクションバーを非表示にするactivity tag
、add
、
Android:theme = "@ style/Theme.AppCompat.NoActionBar"
<activity
Android:name=".MainActivity"
Android:theme="@style/Theme.AppCompat.NoActionBar"
>
ActionBarとTitleなしでフルスクリーンを取得したい場合。
Style.xmlに追加します
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="Android:windowFullscreen">true</item>
</style>
そして、manifest.xmlのアクティビティでスタイルを使用します。
<activity ....
Android:theme="@style/AppTheme.NoActionBar" > ......
</activity>
ActionBar
は通常Fragments
に沿って存在するため、Activity
から非表示にできます。
getActionbar().hide();
getActionbar().show();
そしてFragment
からそれを行うことができます
getActivity().getActionbar().hide();
getActivity().getActionbar().show();
Theme.AppCompat.Lightを使用している場合、より適切なものはTheme.AppCompat.Light.NoActionBarです。
Theme.AppCompat.NoTitleBarを使用するとボタンテキストが非表示になるため、Theme.AppCompat.Light.NoActionBarを使用していることがわかりました。
<activity Android:name=".Activity"
Android:label="@string/app_name"
Android:theme="@Android:style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
これは私のために働く!マニフェストのアクティビティにこれを入れてください
<activity
// ...
Android:theme="@style/Theme.AppCompat.Light.NoActionBar"
// ...
</activity>
次のように、styles.xmlでカスタムテーマを作成することもできます。
<style name="Theme.MyCustomTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name = "Android:windowActionBar">false</item>
<item name = "Android:windowNoTitle">true</item>
// more custom...
</style>
この助けを願っています。
ロープロファイルモードを使用できます こちらを参照
画面に存在する場合はナビゲーションボタンも淡色表示されるSYSTEM_UI_FLAG_LOW_PROFILE
を検索します。
AndroidManifest.xmlのアクティビティのテーマで次を適用します。
<activity Android:name=".DashboardActivity"
Android:theme="@style/AppFullScreenTheme">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
次に、style.xmlのスタイルに以下を適用します
<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
<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>
上記の回答は、ActionBarに役立ちます。追加するには、スプラッシュスクリーンを使用している場合に次のコードを使用します。コンテンツビューを設定する前にこれを使用します。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
明確にするために、次のようにします。
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
これにより、画面が全画面になります。つまり、ネットワークバーなどが表示されているトップバーを削除します。
これはAPI 27で機能します
Styles.xmlで、コードを次のように置き換えます。
<resources>
<!-- No Action Bar -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
次に、ツールバーに次のコードを配置するファイル(activity_list.xmlなど)に追加します。
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:background="@color/colorPrimary"/>
問題がある場合は、線形レイアウトに切り替えます(このコードがテストされているためです)
ここ から:
Android 3.0(APIレベル11)以降、デフォルトのテーマを使用するすべてのアクティビティには、アプリバーとしてActionBarがあります。ただし、アプリバーの機能は、さまざまなAndroidリリースでネイティブActionBarに徐々に追加されています。その結果、ネイティブのActionBarは、デバイスが使用しているAndroidシステムのバージョンに応じて異なる動作をします。対照的に、最新の機能はToolbarのサポートライブラリのバージョンに追加され、サポートライブラリを使用できるすべてのデバイスで使用できます。
そのため、1つのオプションは(アプリのmanifest.xmlファイルで)ActionBarを完全に無効にし、ActionBarを必要とするすべてのページにツールバーを追加することです。
(ステップバイステップの説明については上記のリンクに従ってください)
AndroidManifest.xmlを置き換えます
Android:theme="@style/FullscreenTheme"
に
Android:theme="@style/Theme.Design.NoActionBar"