6

私の質問は、まさにカスタムタイトルバーとしてのsabeです-システムタイトルバーが少しの間表示されますか?

しかし、@Jerryがベストアンサーに書いたのと同じ結果を達成することはできませんでした。「テーマを使用してフレームワークにタイトルが不要であることを伝えるように切り替えたとき、問題は解決し、最初のロードで自分のタイトルが直接表示されるようになりました。」

私のコード:

マニフェスト:

<?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>

SplashScreen.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();
}
}

助けてくれてありがとう!

4

5 に答える 5

9

レイアウトではなく、AndroidManifestでのアクティビティでテーマを使用してください!!

これは機能します:SplashScreen.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);


    }

theme.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>

最初のテーマはステータスバーを表示します。これを非表示にする場合は、2番目のテーマも使用します。また、後でRootLayoutのバックラウンドとして画像を使用するため、属性windowBackroundをnullに使用しました。パフォーマンスの問題でデフォルトの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>

マニフェストでこれを使用します

<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>

マニフェストで2番目のテーマの変更を使用する場合

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

レイアウト内のタグを削除またはスタイル設定して、android:theme="@android:style/Theme.NoTitleBar"アクティビティタグの下にマニフェストを追加する簡単な方法

于 2012-06-26T21:58:56.440 に答える
7

置く:

android:theme="@android:style/Theme.NoTitleBar"

アクティビティタブではなく、アプリケーションタブの下

于 2012-06-26T21:27:02.210 に答える
1

これでAppCompat動作が異なるようです。

次の解決策が私のために働いた:

styles.xmlとセットにアクションバーのない新しいテーマスタイルを追加しますparent="Theme.AppCompat.NoActionBar"

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorPrimary</item>

</style>


次に、同じテーマスタイルをスプラッシュ画面アクティビティに実装します。androidManifest.xml

<activity
        android:name=".ActivityName"
        android:theme="@style/SplashTheme"> // apply splash them here 

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

結果は次のとおりです。

ここに画像の説明を入力してください

于 2017-12-22T15:00:14.550 に答える
1

Krunalソリューションに基づいて<activity>、activity.xmlファイルのタグ内に次の行を配置するだけです。

android:theme="@style/Theme.AppCompat.NoActionBar"

IEの置き換え: android:theme="@style/SplashTheme"

と:

android:theme="@style/Theme.AppCompat.NoActionBar"

中身

<activity
        android:name=".ActivityName"
        android:theme="@style/SplashTheme"> // replace this line

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

与える:

<activity
            android:name=".ActivityName"
            android:theme="@style/Theme.AppCompat.NoActionBar"> // line replaced

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

これにより、styles.xmlに何かを追加する必要がなくなります。

于 2018-07-07T14:04:30.273 に答える
0

MainActivityでこれを使用します

 getSupportActionBar().hide();
   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
于 2017-11-30T11:29:04.823 に答える