2014-07-15 10 views
5

Sto sviluppando un'applicazione per tablet Android contenente molte attività che utilizzano il tema Theme.Holo.DialogWhenLarge. Su dispositivi reali (Nexus 7 KitKat e Samsung Galaxy Tab 3 8 ") queste attività vengono visualizzate come previsto, ma su ogni VM Genymotion che provo a creare (Nexus 7 KitKat e Nexus 10 Jelly Bean ad esempio) vengono visualizzate come normali attività a schermo intero.Ho testato anche su un emulatore KitKat Nexus 7 creato con il gestore di dispositivi virtuali Android SDK standard e le attività sono visualizzate come previstoLe macchine virtuali Genymotion visualizzano Theme.Holo.DialogWhen Attività a tema ampio come normali

Posso ignorarlo e suppongo che sia solo un problema con l'emulatore di Genymotion , ma voglio sapere se c'è un modo per risolverlo per avere un ambiente di test migliore. Vorrei sottolineare che il qualificatore di risorsa *-large funziona sulle macchine virtuali di Genymotion, il problema sembra relativo solo a quel tema.

Per ridurre tutte le possibili cause del problema, ho creato un nuovo progetto di test con un'attività normale normale con un pulsante che avvia un'attività DialogWhenLarge-themed. Ho rimosso anche tutte le librerie di supporto Android e tutti i file di stili XML creati automaticamente da Eclipse: le uniche risorse rimaste sono i due layout per le attività e l'icona di avvio. Questi sono tutti i file del progetto di prova:

src/com/es/testdialogwhenlarge/MainActivity.java

package com.example.testdialogwhenlarge; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 

public class MainActivity extends Activity { 

    @Override protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { 
      @Override public void onClick(View v) { 

       // Start the DialogWhenLarge-themed activity 
       startActivity(new Intent(MainActivity.this, TestActivity.class)); 

      } 
     }); 
    } 

} 

src/com/es/testdialogwhenlarge/TestActivity.java

package com.example.testdialogwhenlarge; 

import android.app.Activity; 
import android.os.Bundle; 

public class TestActivity extends Activity { 

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

} 

r es/layout/activity_main.xml

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.testdialogwhenlarge.MainActivity"> 
    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Button" /> 
</FrameLayout> 

res/layout/activity_test.xml

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.testdialogwhenlarge.TestActivity"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" /> 
</FrameLayout> 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.testdialogwhenlarge" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="19" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="TestDialogWhenLarge" 
     android:theme="@android:style/Theme.Holo"> 

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

     <activity 
      android:name="com.example.testdialogwhenlarge.TestActivity" 
      android:theme="@android:style/Theme.Holo.DialogWhenLarge"> 
     </activity> 

    </application> 

</manifest> 

risposta

1

Questo problema è stato risolto dal team di Genymotion nella versione 2.3.0.

+0

Grazie per le informazioni. Una volta rilasciato (circa?), Dovrei aggiornare Genymotion, le immagini dell'emulatore o entrambe le cose? –

+0

La versione dovrebbe essere tra poche settimane. –

+1

La versione dovrebbe arrivare presto. Se disponi di una licenza a pagamento, proporrà di aggiornare automaticamente un dispositivo virtuale all'avvio. Se si utilizza la licenza "gratuito per uso personale", sarà necessario creare un nuovo dispositivo per utilizzare la correzione. –

Problemi correlati