android - 以编程方式显示android操作栏,需要帮助故障排除
问题描述
我将我的 Themes.xml 文件设置为 NoActionBar,但只需要在 1 个活动中显示我的操作栏,我尝试使用getSupportActionBar().show()
但应用程序崩溃了。我尝试过的其他替代方法是更改清单文件中活动的主题,但它也不起作用。需要一些帮助进行故障排除
主题.xml 文件
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Test" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>
android清单的一部分
<activity android:name=".JoinSession" android:theme="@style/ThemeOverlay.AppCompat.DayNight.ActionBar"/>
我想显示操作栏的活动
public class JoinSession extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_join_session);
getSupportActionBar().show();
解决方案
在您的清单中添加以下行:
<application
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
/>
在您的活动布局文件中:
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
在您的 JoinSession 活动中:
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
推荐阅读
- javascript - 如何从带有 (.rtf) 扩展名的 word 文档中获取文本?
- django - Django_filters 仅在存在 ?page=1 时才具有初始值
- hadoop - 带有排序关键字的 Elasticsearch 查询参数
- excel - 计算单元格和合并单元格的混合
- unity3d - 如何使用 Unity 在 ARCore 中放置两个或多个 3D 资源
- mysql - 如何将日志javascript保存到数据库
- socket.io - 我想知道如何在 socket.io 中创建房间并将它们存储在会话中
- javascript - WebSocket 连接在发送消息时关闭
- r - R:如何在 PowerPoint 中添加注释(官员)
- c# - 在窗口窗体页面切换时捕获事件