2016-08-29 58 views
0

我讀過一些與此主題相關的問題,並嘗試了一些代碼示例。我最小API級別11.有些方法是讓基於佈局源代碼,其ID: dialog layout另一個DialogFragment標題顏色問題

我想獲得我的DialogFragment使用簡單的代碼TextView的:

int titleTextId = getResources().getIdentifier("android:id/alertTitle", null, null); 
    TextView titleText = (TextView)getDialog().findViewById(titleTextId); 
    titleText.setTextColor(ContextCompat.getColor(getActivity(), R.color.darkerOrange)); 
    if(titleText != null){ 
     Log.d("DEBUG", "FOUNDED"); 
    } 

這是我styles.xml文件:

<resources> 
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
    <item name="android:alertDialogTheme">@style/DialogTitleText</item> 
</style> 

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid"> 
    <item name="titleTextStyle">@style/TitleBarTextColor</item> 
    <item name="background">@color/white</item> 
</style> 

<style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/darkerOrange</item> 
</style> 

<style name="DialogTitleText" parent="@style/Theme.AppCompat.Light.Dialog"> 
    <item name="android:windowTitleStyle">@style/DialogTitleStyle</item> 
</style> 

<style name="DialogTitleStyle" parent="@style/DialogTitleText"> 
    <item name="android:textColorPrimary">@color/darkOrange</item> 
</style> 

<style name="SplashScreen" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/splash_screen</item> 
</style> 

<style name="TabLayoutTextSize" parent="TextAppearance.Design.Tab"> 
    <item name="android:textSize">20dp</item> 
</style> 

我的AndroidManifest.xml

<application 
    ... 
    android:theme="@style/AppTheme"> 
    ... 

這些被訪問過的鏈接:

How to style AlertDialogs like a pro

Android - DialogFragment change title text color

Styling custom dialog fragment not working

Android change toolbar title color to white

即使這些方法我還沒有成功地改變標題顏色。我希望'將最小API保留爲11.是否與此min API有關?

+0

我一直在處理類似的東西,我覺得這個標題是快速對話建立。對於任何自定義的對話框體實現。您可以定義對話框主體的佈局(將標題放在裏面),並從對話框構建器中刪除setTitle()。這個標題只是帶有填充和不同大小的TextView,所以很容易複製它。 – Gudin

+0

感謝您的回覆。我跟着它解決了這個問題。我現在要回答。 – learner

回答

1

在從@Gudin的意見,我搜查,發現標題佈局來源:

DialogFragment title layout

我appliced的源代碼,找到視圖和它的作品。

改變這一行:getResources().getIdentifier("android:id/alertTitle", null, null);

要這樣:getResources().getIdentifier("title", "id", "android");