2014-12-20 4 views
13

Ho creato un progetto con un'attività vuota (e poi ho scritto il codice per inserire un frammento di base - layout lineare vuoto) in Android Studio ma non è mostrato alcun ActionBar. Perché?Theme.AppCompat.Light.DarkActionBar non restituisce ActionBar che mostra

dispositivo: Emulatore (Nexus formato 5), API 19

L'attività principale si estende FragmentActivity.

Lo Studio Android generato styles.xml:

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 

</resources> 

Il layout di attività:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/fragmentContainer" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" /> 

Il frammento:

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

manifesto:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mycompany.test" > 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".TestActivity" 
      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> 

</manifest> 
+0

post manifest, signore? – Elltz

+0

@Elltz Ho aggiunto il manifest. –

risposta

20

Invece di estendere FragmentActivity, ho bisogno della classe principale per estendere AppCompatActivity.

Come spiegato qui:

http://developer.android.com/training/basics/fragments/creating.html

Se si sta utilizzando la v7 appcompat biblioteca, l'attività dovrebbe invece estendere ActionBarActivity, che è una sottoclasse di FragmentActivity (per ulteriori informazioni, leggere l'Aggiunta Barra dell'azione).

EDIT

ActionBarActivityis now deprecated. Utilizzare invece AppCompatActivity.

+0

Estendo la mia attività da ActionBarActivity e utilizzo "Theme.AppCompat.Light" ma ora non mostra l'icona dell'app sulla barra delle azioni, ma solo il nome dell'attività. Se ho usato "ThemeOverlay.AppCompat" ed estendo "Attività", mostra la barra delle azioni con l'icona dell'app, ma non mi piace quel tema perché non riesco a vedere il testo scuro. – lenhhoxung

+0

@lenhhoxung Vedi la modifica –

Problemi correlati