ActionBar是Android的窗口功能,可识别应用程序和用户位置,并提供用户操作和导航模式。
我知道这里已经有很多这个问题的答案,如果我还没有尝试过我在这里看到的所有内容,我就不会创建另一个线程。 无论如何,问题很简单。我...
Android - Activity Home/向上箭头在 SDK 24 中具有额外的填充/边距
我刚刚将我的应用程序从使用 SDK 23 更新为 SDK 24。 我的活动出现了问题,显示了向上/主页箭头(即 getSupportActionBar().setDisplayHomeAsUpEnabled(true))...
在操作栏上按下“后退”按钮时,不会调用 onOptionsItemSelected
就这么简单,当我按下后退按钮时什么也没有发生。 这是我正在运行的代码: @覆盖 public View onCreateView(LayoutInflater inflater, ViewGroup 容器, ...
getActionBar().setHomeAsUpIndicator() 打破导航抽屉“汉堡”动画
在我的应用程序中,我使用导航抽屉。我为导航抽屉中的每个项目指定了不同的图标,用于打开导航抽屉。 当我最初启动应用程序时,抽屉图标...
我想要一个更大的操作栏。 因此,我更改了样式中的操作栏大小,现在我正在寻找更改图标大小并将文本也变大的方法。 这是我的风格:
实现新 API SplashScreen 后 DialogFragment 的边距/填充问题
我在我的应用程序上添加了新的 Splashscreen API (androidx.core:core-splashscreen:1.0.0-rc01),之后我的边距/填充被破坏,但仅适用于我的启动器活动 (MainActivity),特别是对于 di.. .
我看过这些答案。 我的 androidManifest.xml 文件包含: android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" > 在我的一个片段中,我需要调用软键盘......
在 Android Kotlin 片段中删除 actionBar 的空间
我使用片段进行底部导航。 我已经用父主题 Theme.MaterialComponents.NoActionBar.Bridge 定义了一个主题。 它在活动上效果很好,但片段显示出差距。 这是
我的应用程序中有一个包含 3 个项目的操作栏。 由于空间问题只能显示 2 个,因此我希望显示第一个,其余的显示在溢出中。 然而在实践中...
我想将我的工具栏设置为操作栏,但由于您的工具栏是布局元素,因此它必须位于您的布局中。现在我的布局在我的片段中。 我在布局中添加了工具栏,并将其称为...
getActionBar().setDisplayHomeAsUpEnabled(true) 这是我用于普通 Android appCp、pact 活动以在两个或多个活动之间切换的方法。有人可以告诉我如何在 jetpack Compose 中执行此操作吗?
我的应用程序显示名称和图标。我想隐藏名字。 我怎样才能做到这一点?
我尝试在我的应用程序中实现操作栏。 菜单.xml 我尝试在我的应用程序中实现操作栏。 菜单.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/itemAdd" android:showAsAction="ifRoom|withText" android:title="ADD"> </item> <item android:id="@+id/itemRefresh" android:showAsAction="ifRoom|withText" android:title="REFRESH"> </item> <item android:id="@+id/itemHelp" android:title="HELP"> </item> </menu> 并创建了菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu, menu); return true; } 但是即使minSdkVersion是11,它也不显示操作栏。是什么原因? 删除操作栏活动的主题 在 androidManifest 文件中。现在它可以工作了... <application android:allowBackup="true" android:icon="@drawable/tasktodo" android:label="@string/app_name" > 请勿在应用程序清单文件中添加任何主题。如果您添加了一个,请删除并尝试运行它... 将班级中的 Activity 更改为 AppCompatActivity。如果你想快速添加它,这应该是最简单的。我将为刚接触 Android 操作系统的人添加代码: public class YourActivity extends Activity 进入 public class YourActivity extends AppCompatActivity 您必须将 Activity 的样式设置为 Theme.Holo 或其变体之一,ActionBar 才能显示。如果你想保持向后兼容性,请在 Activity 的 onCreate 中调用 setTheme : setTheme(android.R.style.Theme_Holo); 具有这样的清单的应用程序 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.Actionbartest" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="11" /> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <activity android:name="MyActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest> Menu.xml 像这样 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/itemAdd" android:showAsAction="ifRoom|withText" android:title="ADD"> </item> <item android:id="@+id/itemRefresh" android:showAsAction="ifRoom|withText" android:title="REFRESH"> </item> <item android:id="@+id/itemHelp" android:title="HELP"> </item> </menu> 还有这样的活动 package com.example.Actionbartest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; public class MyActivity extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu, menu); return true; } } 看起来像这样。 您确定您的手机或模拟器运行的是 Android 3.0 或更高版本吗?如果没有,您最终将得到屏幕截图。 要在旧设备上启用操作栏,您应该使用 AppCompat/support 库 (https://developer.android.com/tools/support-library/features.html) android:allowBackup="true" android:icon="@drawable/ic2" android:label="@string/app_name" android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 这有效。把它放进你的 我导入import android.support.v7.app.AppCompatActivity; 然后编辑为public class MainActivity extends AppCompatActivity 添加依赖项 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.0.0' } <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" ... > <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MyActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <!-- Put the RTA label here ... --> <meta-data android:name="RTA" android:value="RTA-5042-1996-1400-1577-RTA" /> </activity> </application> </manifest> 您可以尝试在 res>values>themes.xml 中更改主题 将父级更改为 Theme.AppCompat.Light.DarkActionBar <!-- Base application theme. --> <style name="Base.Theme.Android_Test_2_1" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your dark theme here. --> <!-- <item name="colorPrimary">@color/my_dark_primary</item> --> </style> 这个对我有用
我想添加一个用于注销的图标,但是当我包含以下代码时,图标显示在左侧,我感兴趣的是它显示在右侧,这是我的代码: // 我...
我知道使用原生 API 是不可能的。有没有解决方法来实现这种视图?
状态栏与应用程序的工具栏重叠,并且工具栏在 Android API 30+ 上消失了
我在 Android API 30+ 上遇到应用程序工具栏问题。设备的状态栏与我的应用程序的工具栏重叠,并且工具栏消失了。 API 低于 30(29、28、27、...)的设备上不会出现此问题。我
如何使用 Jetpack Compose 隐藏 ActionBar
我想隐藏默认操作栏,所以在清单文件中我有以下代码: </styl...</desc> <question vote="5"> <p>我想隐藏默认操作栏,所以在清单文件中我有以下代码:</p> <pre><code> <style name="Theme.MyCompose" parent="Theme.Material.DayNight.NoActionBar"> </style> <style name="Theme.Material.DayNight.NoActionBar" parent="@android:style/Theme.Material.Light.NoActionBar" /> </code></pre> <p>效果是这样的:</p> <p><a href="https://i.stack.imgur.com/l4J9H.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL2w0SjlILnBuZw==" alt=""/></a></p> <p>我想要实现的是这样的:</p> <p><a href="https://i.stack.imgur.com/q3md3.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL3EzbWQzLnBuZw==" alt=""/></a></p> <p>照片应覆盖白色区域。如何实现?</p> <p><strong>更新1</strong></p> <p>在实施具有半透明状态栏和伴奏插图支持的解决方案后,我遇到了奇怪的行为。当窗口标志设置如下时:</p> <pre><code> window.setFlags( WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS ) </code></pre> <p>虽然有插图,但一切看起来都是这样的: <a href="https://i.stack.imgur.com/uHfhO.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL3VIZmhPLnBuZw==" alt=""/></a></p> <p>删除这些标志时,插图可以工作,但我有那个阴影:</p> <p><a href="https://i.stack.imgur.com/CoQle.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL0NvUWxlLnBuZw==" alt=""/></a></p> </question> <answer tick="true" vote="12"> <p>如果您需要完全隐藏状态栏,则需要使用全屏主题,如<a href="https://stackoverflow.com/a/25365193/3585796">这个答案</a></p>所示 <hr/> <p><a href="https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.2.0-alpha03" rel="noreferrer">自从 </a> Compose <strong>1.2.0-alpha03</strong> 起,<strong>Accompanist Insets</strong> 大部分移至 Compose Foundation 中,请查看 <a href="https://google.github.io/accompanist/insets/#migration" rel="noreferrer">迁移指南</a> 了解更多详细信息。以下答案的主要变化是不再需要 <pre><code>ProvideWindowInsets</code></pre>,并且应该替换一些导入。</p> <hr/> <p>如果您需要透明状态栏,您可以按照<a href="https://stackoverflow.com/a/29311321/3585796">这个答案</a>,加上设置<a href="https://google.github.io/accompanist/insets/" rel="noreferrer">伴奏插图</a>进行如下撰写:</p> <pre><code>WindowCompat.setDecorFitsSystemWindows(window, false) window.setFlags( WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS ) </code></pre> <p>然后在撰写中,您可以使用 <pre><code>systemBarsPadding</code></pre> 和其他 <a href="https://google.github.io/accompanist/insets/" rel="noreferrer">Accompanist Insets</a> 修饰符将图像设置为背景并从状态/导航栏偏移。</p> <pre><code>setContent { ProvideWindowInsets { ComposePlaygroundTheme { Box { Image( painterResource(id = R.drawable.my_image), contentDescription = "...", contentScale = ContentScale.FillBounds, modifier = Modifier.fillMaxSize() ) Column( Modifier.systemBarsPadding() ) { Button(onClick = { /*TODO*/ }) { Text("Hello") } } } } } } </code></pre> <p>结果:</p> <p><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tLzdlOUo4LnBuZw==" width="300"/></p> </answer> <answer tick="false" vote="0"> <p>有一个新的 <a href="https://developer.android.com/reference/androidx/activity/EdgeToEdge" rel="nofollow noreferrer">EdgeToEdge</a> 解决方案可以使您的系统栏(状态栏/导航栏)完全透明。</p> <p>确保您使用的 compose.activity 依赖项至少为 <strong>1.8.0</strong>:</p> <pre><code> implementation("androidx.activity:activity-compose:1.8.0") </code></pre> <p>将此代码添加到活动的 <strong>onCreate()</strong> 方法中:</p> <pre><code>override fun onCreate(savedInstanceState: Bundle?) { enableEdgeToEdge( statusBarStyle = SystemBarStyle.light( Color.TRANSPARENT, Color.TRANSPARENT ), navigationBarStyle = SystemBarStyle.light( Color.TRANSPARENT, Color.TRANSPARENT ) ) super.onCreate(savedInstanceState) } </code></pre> <p>您的根可组合项应该如下所示:</p> <pre><code> ... val view = LocalView.current if (!view.isInEditMode) { SideEffect { val window = (view.context as Activity).window window.statusBarColor = Color.Transparent.toArgb() WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme } } ... </code></pre> </answer> </body></html>
我编写了一个简单的菜单并将其添加到操作栏,但我不明白为什么它们在我的活动中不可见。 我正在使用 java 和 android studio,谢谢。 这是我的代码: @覆盖 公开
如果 setDisplayHomeEnabled 为 false,则不会显示 ActionBar 图标
我想在ActionBar上设置图标。 因此,当我将 setDisplayShowHomeEnabled 设置为 true 时,图标会显示,而 false 时则不会显示任何内容。我不想在操作栏上显示后退按钮,只显示图标。 有什么问题? ...
无法正确隐藏ActionBar Android Studio Giraffe
我正在使用 Android Studio Giraffe | 2022.3.1,我无法正确隐藏 ActionBar。 我看到了这个和这个相关的问题,但它们没有帮助我。 这是我的 MainActivity.kt 文件: 包com.