2016-08-29 6 views
0

このトピックに関するいくつかの質問を読み、いくつかのコード例を試しました。私の分のAPIレベルは、いくつかのアプローチが彼らのidは、レイアウトのソースコードに基づいて取得することでした11です: 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

。そして、私は 'min 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");

関連する問題