Установить стиль текста по умолчанию при использовании AlertDialog.Builder.setCustomTitle () - PullRequest
3 голосов
/ 09 декабря 2011

Это может быть легко, но я нигде не могу найти ответ.

Я использую setCustomTitle для своего диалогового окна предупреждения, чтобы использовать мое собственное представление для заголовка диалога:

View customTitle = getLayoutInflater().inflate(R.layout.dialog_title, null);
new AlertDialog.Builder(AddBusActivity.this).setCustomTitle(customTitle).(some more stuff).show();

И dialog_title.xml:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">

  <TextView android:text="My Title"
            android:id="@+id/title"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:gravity="right|center_vertical">
  </TextView>
</LinearLayout>

Моя проблема заключается в том, чтобы заставить заголовок TextView использовать стиль заголовка диалога по умолчанию. В моем устройстве фон диалогового окна оповещений темный, поэтому текст должен быть ярким, но на других устройствах он может отличаться.

Я попытался добавить android: textAppearance = "@ android: style / TextAppearance.DialogWindowTitle" в TextView, но из-за этого текст стал черным, что не так стиль.

Как я могу решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 03 апреля 2013

У меня была похожая проблема со стилями и цветами, но я решил ее, используя собственный диалог вместо AlertDialog.

1) мой код с

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(mName);
...
mDialog = builder.create();
mDialog.show();

был изменен на

dialog = new Dialog(mContext);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_custom_title);
// initializing Views 
dialog.show();

2) в layout.dialog_custom_title установить необходимые стили (фон и цвет)

<LinearLayout xmlns: android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/dialogs_background"
android:orientation="vertical" >
...
<TextView
...
android:textColor="@color/TxtLightBlue" 
android:textSize="@dimen/text_size_default"
/>
...

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 28 сентября 2015

Я использовал приведенный ниже код, который достаточно хорошо установил цвета и интервал

 <TextView android:text="My Title"
    android:id="@+id/title"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:textSize="24sp"
    android:textColor="@color/green"
    android:textStyle="bold"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:gravity="center_horizontal|center_vertical">
</TextView>
...