2015-01-28 4 views
1

Я пытаюсь создать заставку без панели действий.
Прежде всего, созданный заставку, панель действий в основном действии, и когда я создаю заставку, панель действий появляется на экране всплеска, а основной вид деятельности - полный экран. Я искал метод вроде getwindow, getActionbar, но когда я использую эту программу, программа говорит, что, к сожалению, я остановился. Так что же мне не хватает?Скрыть панель действий для экрана Splash

Как я могу избежать aciton bar в заставке?

Мой код:

public class MainActivity extends ActionBarActivity { 

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


    setContentView(R.layout.splash_item); 

    Thread th=new Thread(){ 
     public void run(){ 
      try { 
       sleep(4000); 
       Intent intent=new Intent(MainActivity.this,SplashScreen.class); 
       startActivity(intent); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      finally{ 
       finish(); 
      } 
     } 
    }; 
    th.start(); 
} 

Manifest:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".SplashScreen" 
     android:label="@string/app_name" 
     > 
     <intent-filter> 
      <action android:name="android.intent.action.SPLASHSCREEN" /> 

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

+0

Можете ли вы отправить stacktrace? –

+1

Duplicate вопрос!Вы можете нашли решение этого: [Решение: ActionBar Скрыть] [1] [1]: http://stackoverflow.com/a/16823648/2826046 – djardon

+0

возможно дубликат [заставки приложение и скрыть панель действий] (http://stackoverflow.com/questions/16823049/splash-screen-application-and-hide-action-bar) –

ответ

1
requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN); 

Положи перед вашим setContentView (...), должны получить работу.

+0

Я положил, но сказал, к сожалению, остановился @ The Hungry Androider – Mercur

+1

Это не работает с Android 5.0, он скрывает только строку состояния –

0

использовать стиль без ActionBar, а также в вашей заставке экрана активность Java продлить активность и сделать всплеск экрана ГЛАВНОГО активности и в этой деятельности вы называете Intent, чтобы открыть MainActivity через несколько секунд

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
    </activity> 
     <activity android:theme="@android:style/Theme.Holo.Light.NoActionBar" 
     android:name=".SplashScreen" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

Примера : В вашей активности SplashScreen напишите этот код. Это откроет вашу MainActivity через 2 секунды.

new Handler().postDelayed(new Runnable() 
    { 
    public void run() 
    { 
     Intent localIntent = new Intent(SplashScreen.this, MainActivity.class); 
     SplashScreen.this.startActivity(localIntent); 
     SplashScreen.this.finish(); 
    } 
    }, 2000L); 
1

Для Android 3.0 или выше использования ActionBarAPI#hide
Для более низких версий вам нужно будет использовать библиотеку поддержки Android. Использование ActionBar в

ActionBar actionBar = getSupportActionBar(); 
actionBar.hide(); 

Ref docs

Кроме того, если ваше требование в статике, то вы можете выбрать тему для вашей деятельности, Дос-нет ActionBar, такие как

android:theme="@android:style/Theme.Holo.Light.NoActionBar" 

Вы можете сделать это как:

<activity android:theme="@android:style/Theme.Holo.Light.NoActionBar" 
    android:name=".name_here" 
    android:label="@string/app_name" > 
4

Во-первых, импортируйте su библиотека pport в верхней части приложения:

import android.support.v7.app.ActionBarActivity; 

и изменить свой код следующим образом:

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

    setContentView(R.layout.splash_item); 
    getSupportActionBar().hide(); 
} 
4

Использование AppCompat для поддерживается для всех версий:

<activity 
android:theme="@style/Theme.AppCompat.Light.NoActionBar"> 
0

Это самый простой метод.

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main); 
} 

где R.layout.activity_main заменяется вашей активностью макета, например. activity_splash

Смежные вопросы