使用AlertDialog.Builder.setCustomTitle()时设置默认文本样式

时间:2011-12-09 14:50:51

标签: android android-layout android-ui android-styles

这可能很容易但我无法在任何地方找到答案。

我正在使用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 个答案:

答案 0 :(得分:2)

我在样式和颜色方面遇到了类似问题,但是使用自定义Dialog而不是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"
/>
...

希望它会对某人有所帮助。

答案 1 :(得分:0)

我使用下面的代码,通过设置颜色和间距很好

 <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>