Stworzyłem prostą aplikację demonstracyjną z ekranem powitalnym, mapą i kilkoma zwykłymi ekranami.
U góry mam pasek akcji zawierający logo. Wszystko wygląda dobrze na moim telefonie (Galaxy s1 I9000 V2.3), ale kiedy testuję go na Galaxy s2 v4, pasek akcji pojawia się również na ekranie powitalnym i na ekranie mapy.
Spalsh i aktywność mapy nawet nie dziedziczą po ActionBarActivity, więc jak to możliwe i jak mogę to usunąć?
Oczywisty:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.AppCompat.Light" >
<activity
android:name=".HomeActivity"
android:icon="@drawable/android_logo"
android:label=""
android:logo="@drawable/android_logo" >
<!--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
<activity
android:name=".MapActivity"
android:label="" >
</activity>
<activity
android:name=".PackageActivity"
android:icon="@drawable/android_logo"
android:label=""
android:logo="@drawable/android_logo" >
</activity>
<activity
android:name=".SplashActivity"
android:label="" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Definicja MapActivity (jest długa, więc dołączyłem tylko definicję):
public class MapActivity extends FragmentActivity implements LocationListener
Aktywność powitalna:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
public class SplashActivity extends Activity{
private static final long SPLASH_DISPLAY_LENGTH = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGTH);
}
}
getActionBar
ponieważ aktywność nie dziedziczy zActionBarActivity