Установите размер положительной кнопки в DialogFragment - PullRequest
0 голосов
/ 21 июня 2020

У меня есть следующий настраиваемый диалог, расширенный из AppCompatDialogFragment:

public class MyDialog extends AppCompatDialogFragment
  {
  public Dialog onCreateDialog(Bundle savedInstanceState)
    {
    // inflate the actual dialog from XML ...

    builder.setPositiveButton( R.string.ok, new DialogInterface.OnClickListener()
      {
      @Override
      public void onClick(DialogInterface dialog, int which)
        {
        // ...
        }
      });

    // ...
    }
  }

Это работает, как ожидалось, с одной оговоркой: положительная кнопка слишком мала на планшетах. нравится настраивать его размер. Я знаю решение в случае AlertDialogs, которое включает

Button btnPositive = alert.getButton(Dialog.BUTTON_POSITIVE);
btnPositive.setTextSize(TEXT_SIZE);

в onShow () AlertDialog; Однако DialogFragments, похоже, не имеют эквивалента методу getButton ()?

1 Ответ

0 голосов
/ 21 июня 2020

Я нашел ответ через 5 минут после публикации этого вопроса:

dialog.setOnShowListener(new DialogInterface.OnShowListener()
  {
  @Override
  public void onShow(DialogInterface dialog)
    {
    Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
    btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
    }
  });

т.е. просто приведите диалог created () к AlertDialog. Извините за это!

...