2017-08-08 2 views
2

Je veux avoir un thème de dialogue d'activité sombre, donc je définis ci-dessous:thème de dialogue d'activité sombre ne fonctionne pas

<style name="AppThemeDialogActivityDark" parent="Theme.AppCompat.Dialog"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 

    <!-- dark toolbar + dark popup menu --> 
    <item name="toolbarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item> 
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Dark</item> 


    <!-- trying to forcefully set the background and text color --> 
    <item name="android:windowBackground">@android:color/background_dark</item> 
    <item name="android:textColor">@color/white</item> 

    <item name="android:minWidth">320dp</item> 

    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

Activité:

public class FeedbackActivity extends AppCompatActivity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     // darkTheme returns true!!! 
     setTheme(MainApp.getPrefs().darkTheme() ? R.style.AppThemeDialogActivityDark : R.style.AppThemeDialogActivity); 
     super.onCreate(savedInstanceState); 

     mBinding = DataBindingUtil.setContentView(this, R.layout.activity_feedback); 
    } 
} 

Mise en page:

<?xml version="1.0" encoding="utf-8"?> 
<layout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    xmlns:app="http://schemas.android.com/apk/res-auto" > 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:elevation="4dp" 
      app:theme="?toolbarTheme"/> 

     <ListView 
      android:padding="12dp" 
      android:id="@+id/lvFeedback" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <ScrollView 
      android:id="@+id/svFeedback" 
      android:layout_width="wrap_content" 
      android:layout_weight="1" 
      android:layout_height="0dp"> 

       <TextView 
        android:padding="12dp" 
        android:id="@+id/tvFeedback" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 

     </ScrollView> 

     <Button 
      android:padding="12dp" 
      android:id="@+id/btButton" 
      style="?borderlessButtonStyle" 
      android:elevation="4dp" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

</layout> 

Qu'est-ce que suis-je manquant ici? Pourquoi mon dialogue d'activité a-t-il un fond blanc à la place du sombre?

EDIT - Des détails

  • Réglage des arrière-plans de vue sur android:background="?android:windowBackground" fonctionne. Mais je dois le faire pour le ListView et pour le TextView. Que cet attribut de thème fonctionne signifie, le thème est appliqué correctement, semble que l'arrière-plan par défaut est défini dans un autre attribut de thème dans un thème de dialogue?
  • mes articles ListView ont un thème correct aussi bien en utilisant simplement android.R.layout.simple_list_item_1 comme mise en page, je n'ai pas besoin de définir leurs couleurs d'arrière-plan/texte, ils sont correctement orientés pour un thème sombre, mais pas visible si je ne définis pas ListView arrière-plan manuellement comme ci-dessus
+0

Vous devriez vérifier votre dossier valeurs-Vxx et voir les fichiers de style en eux. peut-être que pour certains d'entre eux le style est différent de ce dont vous avez besoin. Aussi, vous devriez vérifier votre fichier de mise en page et voir si elles utilisent un style spécifié de votre fichier de styles ou non. – Merka

+0

c'est une bonne idée, mais je suis assez fainéant créer des styles spéciaux pour différentes tailles d'écran et vérifié cela maintenant et ce n'est pas le cas – prom85

+0

Et j'ai ajouté ma mise en page xml, je ne suis pas la couleur de fond manuellement. Et je ne mets aucune couleur dans le code, l'activité est une activité très simple avec quelques lignes de code seulement – prom85

Répondre

0

Essayez de changer parent parent="@android:style/Theme.Material.Dialog.Alert"