gpt4 book ai didi

android - 标题栏不断出现,即使有 requestWindowFeature 或 android :theme

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:34 26 4
gpt4 key购买 nike

我的问题正是Custom titlebar - system titlebar being shown for a brief moment?

但我无法获得与@Jerry 在最佳答案中所写相同的结果。 “当我改用主题来告诉框架我不想要标题时,问题就消失了,现在我在第一次加载时直接看到了我自己的标题”

我的代码:

list :

<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="3" android:versionName="1.0.2"
package="androidhive.dashboard" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="8"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application android:icon="@drawable/icone" android:label="@string/app_name">
<activity
android:name="com.androidhive.dashboard.SplashScreen"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/SplashTheme"
>

<ImageView
android:id="@+id/splashscreen_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_vertical"
android:contentDescription="Splash"
android:scaleType="centerCrop"
android:src="@drawable/splash"
style="@style/SplashTheme" />

</LinearLayout>

风格:

<style name="SplashTheme" parent="@android:Theme.Black">
<item name="android:windowNoTitle">true</item>
<item name="android:background">@drawable/splash</item>
</style>

启动画面.java

public class SplashScreen extends Activity implements Runnable{


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
setTheme(R.style.SplashTheme);
setContentView(R.layout.splashscreen_layout);




Handler h = new Handler();
h.postDelayed(this, 15000);
}

@Override
public void run() {
startActivity(new Intent(this, AndroidDashboardDesignActivity.class));
finish();
}
}

谢谢你的帮助!

最佳答案

在 AndroidManifest 上的 Activity 中使用您的主题,而不是在您的布局中!!

这将起作用:启动画面.java

public class SplashScreen extends Activity{


private Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_launcher);

final Runnable runnable = new Runnable() {

@Override
public void run() {
Intent intent=new Intent(SplashScreen.this, AndroidDashboardDesignActivity.class);
startActivity(intent);
finish();

}
};
handler = new Handler();
handler.postDelayed(runnable, 5000);


}

主题.xml

<style name="SplashTheme" parent="android:Theme">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
</style>

<style name="SplashTheme.FullScreen" parent="android:Theme">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>

第一个主题会为你显示状态栏,如果你想隐藏这个也可以使用第二个主题。另外我已经将属性 windowBackround 设置为 null 因为之后你将使用你的图像作为你的 RootLayout 的背景,所以最好不要覆盖默认 android 主题使用的背景颜色以解决性能问题。

在你的splashscreen_layout中你可以使用这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/splash"
android:orientation="vertical" >

</RelativeLayout>

在你的 list 中使用这个

<uses-sdk android:minSdkVersion="8" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
android:icon="@drawable/icone"
android:label="@string/app_name" >
<activity
android:name="com.androidhive.dashboard.SplashScreen"
android:label="@string/app_name"
android:theme="@style/SplashTheme"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

如果您想在 list 中使用第二个主题更改

android:theme="@style/SplashTheme"android:theme="@style/SplashTheme.FullScreen"

一种简单的方法是在布局中删除或设置样式标签,然后在 Activity 标签下的 list 中添加 android:theme="@android:style/Theme.NoTitleBar"

关于android - 标题栏不断出现,即使有 requestWindowFeature 或 android :theme,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11216129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com