3

我目前正在使用 DialogFragment,但无法在右上角设置图标。

我已经看到了一些将图标显示为对话框图标的技巧:

 @Override
 public Dialog onCreateDialog(Bundle savedInstanceState) {
  Dialog myDialog = new AlertDialog.Builder(getActivity())
     .setIcon(R.drawable.ic_info)
     .setTitle(title)
  return myDialog;
 }

但这无济于事,因为图标在左侧,点击不直观

我知道我可以设置自定义布局,但我确信布局会反映所有操作系统和 OEM 制造商的自定义(相同样式)

有什么帮助吗?

在此处输入图像描述

4

1 回答 1

7

我知道这是一个老问题,很可能已经解决了,但也许有人觉得它有用。

在你的 onCreateView 方法上做这样的事情:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    getDialog().requestWindowFeature(Window.FEATURE_LEFT_ICON);
    // your view related code, inflate or whatever
    ...

这准备了带有 continer 的标题视图以设置图标,但它在视图层次结构被实例化之后才会存在,因此您需要在之后调用的方法上设置图标,例如 onActivityCreated,如下所示:

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
     super.onActivityCreated(savedInstanceState);
     getDialog().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_launcher);
}

请务必先调用 super 方法,否则您的图标可能会被覆盖。

希望这可以帮助某人...

来自墨西哥的问候...

于 2014-06-06T06:25:48.533 回答