在我的自定义标题栏出现之前显示的默认标题栏
Default title bar displayed before my custom title bar appears
我正在开发一个 android 应用程序,我需要使用一张图片和两个按钮来使用我的自定义标题栏。问题是,当我启动我的应用程序时,在我的自定义标题栏出现之前的 1 或 2 秒内,会显示丑陋的默认标题栏 "my application"。最小目标 API 是 15。
在 stack overflow 上找到的所有答案都没有用,或者成功地让它消失了,但对我的自定义标题栏做了同样的事情。
这是我在 activity 中的调用方式:
supportRequestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
super.onCreate(savedInstanceState);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.topbarclassic);
因为我的第一个视图是一个片段,所以我不调用 SetContentView
这是我的习惯styles.xml:
<resources>
<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTitleSize">50dp</item>
<item name="android:windowNoTitle">false</item>
</style>
</resources>
我的自定义标题栏再次正常工作。我只需要摆脱应用程序启动时快速显示的默认设置。非常感谢!
如果您使用此样式,activity 将在没有操作栏的情况下加载
<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
那你真的应该使用工具栏来设置操作栏。例如:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize" />
</RelativeLayout>
然后在您的 activity 中,您可以像这样设置操作栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
别忘了在 AndroidManifest.xml
中设置它们
<activity
android:name=".path.MyActivity"
android:theme="@style/theme"/>
如果使用 Modge 的 link 关于启动画面找到了解决我的问题的方法。
它本身并不能解决问题,但仍然是一个很好的解决方法。
我创建了一个小activity 负责启动画面,避免白色的第一个画面停留太久。然后这个飞溅重定向到我的主 activity.
这对我来说也很有用,因为我可以在启动画面期间启动一些连接过程。你可以按照这个例子:http://www.androidhive.info/2013/07/how-to-implement-android-splash-screen-2/
我正在开发一个 android 应用程序,我需要使用一张图片和两个按钮来使用我的自定义标题栏。问题是,当我启动我的应用程序时,在我的自定义标题栏出现之前的 1 或 2 秒内,会显示丑陋的默认标题栏 "my application"。最小目标 API 是 15。
在 stack overflow 上找到的所有答案都没有用,或者成功地让它消失了,但对我的自定义标题栏做了同样的事情。
这是我在 activity 中的调用方式:
supportRequestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
super.onCreate(savedInstanceState);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.topbarclassic);
因为我的第一个视图是一个片段,所以我不调用 SetContentView
这是我的习惯styles.xml:
<resources>
<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTitleSize">50dp</item>
<item name="android:windowNoTitle">false</item>
</style>
</resources>
我的自定义标题栏再次正常工作。我只需要摆脱应用程序启动时快速显示的默认设置。非常感谢!
如果您使用此样式,activity 将在没有操作栏的情况下加载
<style name="theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
那你真的应该使用工具栏来设置操作栏。例如:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize" />
</RelativeLayout>
然后在您的 activity 中,您可以像这样设置操作栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(...);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
别忘了在 AndroidManifest.xml
中设置它们 <activity
android:name=".path.MyActivity"
android:theme="@style/theme"/>
如果使用 Modge 的 link 关于启动画面找到了解决我的问题的方法。
它本身并不能解决问题,但仍然是一个很好的解决方法。
我创建了一个小activity 负责启动画面,避免白色的第一个画面停留太久。然后这个飞溅重定向到我的主 activity.
这对我来说也很有用,因为我可以在启动画面期间启动一些连接过程。你可以按照这个例子:http://www.androidhive.info/2013/07/how-to-implement-android-splash-screen-2/