Android:TextView不显示所有字母

时间:2017-04-21 22:33:54

标签: java android alertdialog android-alertdialog

一个简单的AlertDialog给了我意想不到的结果:丢失了字母。这只发生在AlertDialog中。在我的主题中,我将monospace设置为我的默认字体,然后将monospace字体替换为客户端提供给我的自定义字体(.otf)。

我在Android 25上得到了预期的结果,并且可以在19上重现该问题。我还没有尝试过这些版本之间的任何版本。

我尝试过的一些事情:

  • 删除自定义字体以查看它是否是罪魁祸首,导致丢失所有文本而不是位。还尝试将自定义字体切换为sans或其他字体作为我的默认字体。

  • 创建自定义对话框主题

  • 更改颜色以查看文字是否与背景相符,我不相信是这种情况。

  • 硬编码文字。没有区别

  • 使用android.app.AlertDialog而不是android.support.v7.app.AlertDialog。没有区别。

  • 我有DatePickerDialog和TimePickerDialog的样式。我尝试删除它们,看看它们是否在干扰。显然不是,那些风格是vs 21>我的问题是在19.我没有为AlertDialog指定任何样式或主题。我的根主题是Theme.AppCompat.DayNight.NoActionBar。主题的其余部分仅设置主要和次要颜色。没什么太奢侈的。

Android 25 预期结果

enter image description here

Android 19 wtf结果

enter image description here

这是代码的范围:

import android.support.v7.app.AlertDialog;

public static Maybe<Boolean> showConfirmDialog(Context context, int title, int message, int positive, int negative) {
        return Maybe.create(e -> {
            final AlertDialog dialog = new AlertDialog.Builder(context)
                    .setTitle(title)
                    .setMessage(message)
                    .setPositiveButton(positive, (d, w) -> e.onSuccess(true))
                    .setNegativeButton(negative, (d, w) -> e.onSuccess(false))
                    .show();

             dialog.setOnDismissListener(d -> e.onComplete());

             e.setCancellable(() -> {
                if (dialog != null && dialog.isShowing())
                   dialog.dismiss();
             });

        });
}

我最终创建了一个从头开始的对话框,因为我无法弄清楚我所经历的时间是怎么回事,但这让我感到困扰,我需要得到一个解决方案。

1 个答案:

答案 0 :(得分:0)

我和supprot alertdialog有类似的问题。我通过自定义主题对话框解决了它。试试这个变种。添加到您的构建器自定义主题:

new AlertDialog.Builder(getContext(), R.style.DefaultAlertDialogTheme)

这里是你的style.xml:

<style name="DefaultAlertDialogTheme" parent="Base.Theme.AppCompat.Light.Dialog">
</style>