DialogFragment背景颜色因平台而异

时间:2013-10-09 13:43:31

标签: android

我正在实现自定义DialogFragment并遇到字体颜色问题。

这是有问题的TextView视图代码:

<TextView
        android:id="@+id/message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/secondary_text_light"
        android:text="@string/loading_message" />

这就是DialogFragment的创建方式。

public Dialog onCreateDialog(Bundle savedInstanceState) {
    super.onCreateDialog(savedInstanceState);
    LayoutInflater inflater = getActivity().getLayoutInflater();
    ViewGroup view = (ViewGroup) inflater.inflate(R.layout.dialog_undetermined_progress, null);
    progressBar = (ProgressBar) view.findViewById(R.id.progress_bar);   
    messageView = (TextView) view.findViewById(R.id.message);
    messageView.setText(message);

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle(title).setView(view);

    return builder.create(); 
}

如果Android支持holo,那一切都很好,因为对话框是白色的,TextView是可见的。但是在几个2.3平台上,也依赖于制造商层,DialogFragment可能是黑暗的,而TextView颜色几乎是不可见的。

我可以使用任何安卓颜色来摆脱这个问题吗?

1 个答案:

答案 0 :(得分:1)

结帐HoloEverywhere。它是一个库,它将Holo主题的后端移植到2.x设备来解决这个问题。我已经实现了几个问题。

如果这工作太多,而您实际上只想为这一个视图的背景着色,请查看these options,其中会显示基本Android Holo颜色的值。你可以复制你想要的任何值。

这些似乎对你最有用:

<color name="background_holo_dark">#ff000000</color>
<color name="background_holo_light">#fff3f3f3</color>