我想知道如何将全屏主题(没有标题栏+没有操作栏)应用于某个活动.我正在使用支持包v7中的AppCompat库.
我试图申请android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
我的具体活动,但它崩溃了.我认为这是因为我的应用程序主题是这样的.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)
它只隐藏标题栏但不隐藏操作栏.我目前的解决方法是隐藏动作栏
getSupportActionBar().hide();
Run Code Online (Sandbox Code Playgroud) 我有一个显示文本的简单应用程序.
该应用程序以一个带有几个选项的主屏幕开始(例如,一个信息按钮,可以显示有关该应用程序的信息,一个浏览按钮,允许用户查看可以显示的所有单个文本).主按钮指向另一个显示文本的屏幕.通过向左和向右滑动,他可以看到不同的文本段落.这是该应用程序的主要目的.
目前我已经实施了ActionBar.我的MainActivity.Java扩展了AppCompatActivity.应用程序中的所有内容都在此活动中.
现在我想这样做,所以ActionBar只出现在"显示"模式下,而不是在启动屏幕或"信息"/"浏览"模式下.
是否可以在应用程序的一个部分中安装ActionBar,而在应用程序的另一部分中没有 ActionBar?(并将其全部保留在相同的活动中?)
我一直在努力做到这一点,但没有用.如果可以,我接下来应该尝试什么?
到目前为止,我尝试过以下方面:
1)创建这个主题
<style name="Theme.AppCompat.NoActionBar" parent="Theme.AppCompat.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其应用于MainActivity ...
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.NoActionBar" >
Run Code Online (Sandbox Code Playgroud)
....执行此操作后,ActionBar仍然存在.(这来自这个SO帖子(android:windowNoTitle不会隐藏动作栏与appcompat-v7 21.0.0)
2)另一种尝试是将此添加到onCreate.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.activity_main);
Run Code Online (Sandbox Code Playgroud)
这来自于研究这篇SO帖子:( 如何在创建活动之前隐藏操作栏,然后再次显示它?)
有什么建议?
我的目标是在我的应用程序启动时显示启动画面.现在它将做的是简要地显示带有其他空白页面的操作栏,然后跳转到启动画面.我试图弄清楚如何不显示开始屏幕,只是从启动画面开始.我正在尝试使用这些链接获取有关如何解决此问题的信息.
ActionBar隐藏标题的滞后 在这一个我假设我可以使用相同类型的方法通过更改主题隐藏动作栏,但我不知道我将实际使用什么作为我的风格.
如何在创建活动之前隐藏操作栏,然后再次显示它? 在这里,它讨论了向清单添加一条线来做到这一点.清单中的哪个地方?我放的任何地方都没有做任何事情.
所以我使用ActionBarSherlock并决定切换到新的ActionBarCompat.使用ABS,可以使用本文中描述的方式隐藏ActionBar: 如何在创建活动之前隐藏操作栏,然后再次显示它?
但是,随着ActionBarCompat上API14的应用程序崩溃,因为当你设置android:windowActionBar
为false
的getSupportActionBar()
方法返回null,即使你已经宣布getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
进入onCreate()
方法.
有趣的是,如果你打电话getActionBar()
,你得到的对象,一切正常.
那么,这是一个错误还是我错过了什么?欢迎任何想法!
styles.xml
文件:
<style name="Theme.MyApp" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowTitleSize">0dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
MyActivity.java
文件:
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the action bar feature. This feature is disabled by default into the theme
// for specific reasons.
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
...
// By default the action bar is hidden.
getSupportActionBar().hide();
}
Run Code Online (Sandbox Code Playgroud) 我的Android应用程序使用操作栏进行选项卡导航.它运行良好,但令我困扰的是,在应用程序首次启动时,一个小的默认操作栏会在被真实的选项卡导航操作栏替换之前短暂显示.我的onCreate开头是这样的:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.activity_main);
//Set up the actionbar
final ActionBar actionBar = getActionBar();
.
.
.
Run Code Online (Sandbox Code Playgroud)
我必须做什么才能初始化真正的操作栏而没有在启动之前暂时显示的小默认操作栏?
谢谢
我使用https://github.com/Dreddik/AndroidTouchGallery中的代码来实现imageView的缩放缩放.它很棒.但是现在我想在TouchImageView类的touchEvent中调用getActionBar.show()和hide().
问题是这个类扩展了ImageView所以我无法调用getActionBar().
有什么建议?
android ×6