Android 隐藏自定义 ActionBar
Android hiding custom ActionBar
我正在为我的 ActionBar 使用自定义背景。我遵循了 here 的教程。
我的 styles.xml 看起来像这样:
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/actionbar_bg</item>
</style>
</resources>
我希望此 ActionBar 显示在每个 activity 上,除了登录 .. 所以我从我的登录 activity 中隐藏了 ActionBar(来自:Whosebug):
public class Login extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
在我的清单中,我添加了自定义主题......像这样:
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/MyTheme"
>
当我 运行 应用程序时,我收到错误消息:You need to use a Theme.AppCompat theme (or descendant) with this activity
所以我在 Whosebug 上搜索 solution。我不得不扩展 Activity 而不是 ActionBarActivity。我这样做了,也是在我的 登录 Activity 上。
但是现在...我不能再在登录时隐藏 ActionBar activity 因为它不再扩展 ActionBarActivity ..所以下面的代码:
ActionBar actionBar = getSupportActionBar();
不会工作.. 任何人都知道如何在登录时仍然隐藏操作栏 activity,但仍然使用自定义 Actionbar 主题?
TL;DR:我想使用自定义操作栏,但我想在登录时隐藏它 activity。我可以让 actionbar 工作,但前提是我让我的 Login activity 从 Activity 扩展,而不是 ActionBarActivity - 这会导致 getSupportActionBar();停止工作,所以我不能再隐藏操作栏了。
创建一个父级为 Theme.Holo.Light.NoActionBar
的主题。使用 android:theme
参数将其分配给您的登录名 activity。
只需在 onCreate 方法中的 setContentView() 方法之前添加以下代码即可:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); // add this line
setContentView(R.layout.login_layout);
我正在为我的 ActionBar 使用自定义背景。我遵循了 here 的教程。
我的 styles.xml 看起来像这样:
<resources>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/actionbar_bg</item>
</style>
</resources>
我希望此 ActionBar 显示在每个 activity 上,除了登录 .. 所以我从我的登录 activity 中隐藏了 ActionBar(来自:Whosebug):
public class Login extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
在我的清单中,我添加了自定义主题......像这样:
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/MyTheme"
>
当我 运行 应用程序时,我收到错误消息:You need to use a Theme.AppCompat theme (or descendant) with this activity
所以我在 Whosebug 上搜索 solution。我不得不扩展 Activity 而不是 ActionBarActivity。我这样做了,也是在我的 登录 Activity 上。
但是现在...我不能再在登录时隐藏 ActionBar activity 因为它不再扩展 ActionBarActivity ..所以下面的代码:
ActionBar actionBar = getSupportActionBar();
不会工作.. 任何人都知道如何在登录时仍然隐藏操作栏 activity,但仍然使用自定义 Actionbar 主题?
TL;DR:我想使用自定义操作栏,但我想在登录时隐藏它 activity。我可以让 actionbar 工作,但前提是我让我的 Login activity 从 Activity 扩展,而不是 ActionBarActivity - 这会导致 getSupportActionBar();停止工作,所以我不能再隐藏操作栏了。
创建一个父级为 Theme.Holo.Light.NoActionBar
的主题。使用 android:theme
参数将其分配给您的登录名 activity。
只需在 onCreate 方法中的 setContentView() 方法之前添加以下代码即可:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); // add this line
setContentView(R.layout.login_layout);