2015-09-04 13 views
32

zeigt, wenn eine benutzerdefinierte DialogFragment erstellen, habe ich den Titel mit dem folgenden:Android DialogFragment Titel nicht

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View v = inflater.inflate(R.layout.fragment_dialog_add, container, false);  

    // Setting title here 
    getDialog().setTitle("Add New"); 

    return v; 
} 

Der obige Code funktioniert für mich auf API-Ebene fein älter als 23. Für API 23 der Titel nicht ist überhaupt zeigen.

Irgendeine Idee warum? und wie man die Titel-Show auf API 23 macht?

Antwort

48

Gelöst folgende Unterlagen an dem styles.xml durch Zugabe:

<item name="android:dialogTheme">@style/CustomDialog</item> 

<style name="CustomDialog" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowNoTitle">false</item> 
</style> 
+2

Danke:

<style name="CustomDialog" parent="@style/Theme.AppCompat.Light.Dialog"> <item name="android:windowNoTitle">false</item> </style> 

Wenn Ihr Dialog ein Fragment ist! Ich zog mir die Haare aus. Ich bin mir nicht sicher, warum windowNoTitle nach API 23 standardmäßig auf "true" gesetzt ist, aber danke für die Fehlerbehebung! – AdamMc331

+6

Wirklich nicht verstehen, warum sie dies in API23 geändert haben – Sudara

+1

Verwenden Sie 'parent =" @ style/Theme.AppCompat.Dialog "' für dunkle Dialog. – Yani2000

38

In Ihrem Stil:

MyFragment myFragment = new MyFragment(); 
myFragment.setStyle(DialogFragment.STYLE_NORMAL, R.style.CustomDialog);