次のコードを使用して、ハニカムのアクションバーを非表示にできます。
getActionBar().hide();
しかし、キーボードが開いて、ユーザーが何かをコピーして貼り付けると、アクションバーが再び表示されます。アクションバーを完全に無効にするにはどうすればよいですか?
次のコードを使用して、ハニカムのアクションバーを非表示にできます。
getActionBar().hide();
しかし、キーボードが開いて、ユーザーが何かをコピーして貼り付けると、アクションバーが再び表示されます。アクションバーを完全に無効にするにはどうすればよいですか?
回答:
バージョン3.2より前のデバイスでこのバリアントTheme.Holo.Light
を使用して使用したいTheme.Holo.Light.NoActionBar
場合は、これをに追加できますstyles.xml
。
<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
次に、それをアクティビティのテーマとして設定します。
<activity android:theme="@style/NoActionBar" ... />
<item name="android:windowFullscreen">true</item>
マニフェストに活動テーマを設定することで、
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
ActionBar
、私にとってはを完全に削除する唯一の方法です。
onCreate関数内で次のコードを使用します。
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
出典:https : //developer.android.com/guide/topics/ui/actionbar.html
Android Studioのデフォルトで生成されたActivityスーパークラスではActionBarActivity
、他の応答のソリューションは機能しません。スーパークラスを変更するだけで解決するには:
public class xxxActivity extends ActionBarActivity{
に:
public class xxxActivity extends Activity {
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でスタイルを使用します。
android:theme="@style/AppTheme.NoActionBar"
アクションバーを簡単に強制的に非表示にすることができます:
ActionBar actionbar = getSupportActionBar();
actionBar.hide();
デフォルトのテーマを使用してください。
アクションバーのないテーマが必要な場合は、「NoActionBar」バリアントを使用できます。基本テーマが以下の場合
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
その後、あなたは使うことができます
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
ただし、メインテーマのプロパティ、つまりAppThemeを保持する場合は、次のように実行できます。
<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
この方法でベーステーマのすべてのプロパティを保持でき、NoActionBarテーマに明示的に追加する必要はありません:)
Holoテーマを使用しないでください。アクションバーが消えます。このコードは、サポートライブラリv7を使用して、API 8以降で動作します。
<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
アクティビティにそのテーマを設定します。
<activity android:theme="@style/NoActionBar" ... />
そしてあなたの活動クラスで。
ActionBarActivityを拡張する場合でも機能します。
下の解像度- >値- >のstyles.xml
変化する
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
に
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
アクションバーを完全に非表示にする手順は次のとおりです。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
いるはずです。親を名前に「NoActionBar」を含む他のテーマに置き換えます。
a。activity_main.xmlのデザインタブに切り替えて、UIのテーマドロップダウンリストで提供される各テーマを試すことによって、テーマの外観を確認することもできます。
MainActivityがAppCompatActivityを拡張する場合は、必ずAppCompatテーマを使用してください。
onCreate
前にあなたのメソッドにこのコードを入力してくださいsetContentView
:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
私はこれに対するデザイナーのアプローチを投稿したいと思います。これにより、デザインがビジネスロジックから分離されます。
ステップ1.(res-> values-> styles.xml)で新しいスタイルを作成する:基本的には、異なる親を持つ全体的なスキームのコピーです-parent = "Theme.AppCompat.Light.NoActionBar"
<!-- custom application theme. -->
<style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
</style>
ステップ2:AndroidManifest.xmlで、このテーマを目的のアクティビティに追加します。たとえば、アクションバーなしのメインアクティビティが必要なので、以下のように追加します。
<activity android:name=".MainActivity"
android:theme="@style/MarkitTheme">
これは多くのことを試した後の私にとって最良の解決策です。
アクションバーを削除しながらViewPagerを保持したい別の興味深い解決策は、スタイルをshowにすることです
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/NoActionBarStyle</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
<item name="android:backgroundSplit">@null</item>
<item name="android:displayOptions"></item>
</style>
これは、AndroidのほとんどのDialerアプリケーションがアクションバーなしでViewPagerを表示する方法です。
参照:https : //github.com/CyanogenMod/android_packages_apps_Dialer
私はこのソリューションを使用します:
マニフェストのアクティビティタグ内:
android:label="@string/empty_string"
そしてstrings.xmlで:
<string name="empty_string">""</string>
このようにして、タイトルとともにActionBar(またはツールバー)を保持しますが、アクティビティが作成されると、タイトルは自動的に空になります。
不思議なことに、4.4.2(API 19)を実行するNexus 7でビルドする場合、これらのどれも私にはうまくいきませんでした。ほとんどの場合、少なくとも最新バージョンのAndroid Studio(1.2.1.1)では、空のアクティビティアプリを作成した後、次のようになります。
android:theme = "@ style / AppTheme"
アクティビティ要素ではなく、アプリケーション要素にあります。上記のコードを削除するか、次のように変更しようとした場合:
android:theme = "@ android:style / Theme.Holo.Light.NoActionBar"
アプリは実行されません...これが発生している場合は、styles.xmlファイル(res> values> styles.xml)に移動し、次のブロックのように.NoTitleBarを親の最後に追加します。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
AndroidManifestファイルを変更する必要はありません。
activity_main.xml
で、次の行で調整できます。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
android:theme="@style/Theme.Design.Light.NoActionBar"
.......
">
時々このようなものが見られるときはここをクリックから、「noActionBar」テーマを選択できます。
お役に立てば幸いです。