このトピックに関するいくつかの質問を読み、いくつかのコード例を試しました。私の分の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に関連していますか?
私は似たように対処してきた、と私はこのタイトルを迅速ダイアログセットアップのためだと思います。何でもカスタムのダイアログ本体の実装に行く。ダイアログボディのレイアウトを定義し(内部にタイトルを入れる)、ダイアログビルダーからsetTitle()を削除することができます。このタイトルはパディングとサイズの異なるTextViewだけなので、簡単に複製できます。 – Gudin
ご返信ありがとうございます。私はそれに続き、問題を解決しました。私は今答えを入れます。 – learner