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

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

这可能很简单,但我无法在任何地方找到答案。

我正在为我的警告对话框使用 setCustomTitle,以便将我自己的 View 用于对话框标题:

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,但它导致文本为黑色,但不是正确的风格。

我该如何解决这个问题?

最佳答案

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

希望对大家有帮助。

关于android - 使用 AlertDialog.Builder.setCustomTitle() 时设置默认文本样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447225/

相关文章:

android - 如何在布局编辑器中模拟沉浸式模式

android - Android Studio 更新后突然我的 Java 和 Xml 文件改变了

android - 如何从子 Activity 完成父 Activity

android - 可以隐藏水平样式的进度文本,不确定的 ProgressDialog?

android - 如何将 videoView 与 imageView 和 recyclerView 一起制作动画?

java - 使用 Android Studio 和 LibGDX 制作 iOS 应用程序

Android FloatingActionButton 在页面更改时隐藏/显示

android - 我无法从我的模块引用 SharedPreferences

java - 无法为 com.android.build.gradle.internal.api.DefaultAndroidSourceSet 类型的源集 main 设置未知属性 's'

Android 通用应用方法