3

現在DialogFragmentを使用していますが、右上隅にアイコンを設定できません。

アイコンをダイアログアイコンとして表示するためのいくつかのトリックを見てきました。

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

ただし、アイコンは左側にあり、クリックするのは直感的ではないため、これは役に立ちません。

カスタムレイアウトを設定できることは知っていますが、レイアウトにはすべてのOSおよび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
    ...

これにより、アイコンを設定するためのコンティナーを含むタイトル ビューが準備されますが、ビュー階層がインスタンス化されるまで存在しないため、onActivityCreated など、その後に呼び出されるメソッドでアイコンを設定する必要があります。

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

最初に必ずスーパー メソッドを呼び出してください。そうしないと、アイコンがオーバーライドされる可能性があります。

これが誰かに役立つことを願っています...

メキシコからのご挨拶...

于 2014-06-06T06:25:48.533 に答える