Изменение выравнивания кнопок AlertDialog

В течение нескольких часов боролись за изменение выравнивания кнопок внутри AlertDialog (support.v7 one), поскольку они не будут выравниваться в соответствии с направлением просмотра локали,несмотря на то, что все приложение выравнивается по левому краю, а также текст внутри AlertDialog.

(Почему это произойдет, говорите вы? Я программно настраиваю язык локали на «en», так как это мой язык приложения по умолчанию, хотя системная локаль может быть чем-то другим).

Итак, как я уже сказал, мне не нужно трогать сообщение внутри диалога, но, как пример, вот как изменить его направление:

TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.RIGHT); // or LEFT

Конечно, это не работает на кнопках, так как мне нужно изменить гравитацию макета.

Вот как я могу найти кнопки (после того, как я вызову show () на AlertDialog.Builder, конечно, иначе они будут нулевыми):

AppCompatButton accept = (AppCompatButton)dialog.findViewById(android.R.id.button1);
AppCompatButton cancel = (AppCompatButton)dialog.findViewById(android.R.id.button2);

И вот как я пытаюсь изменить их выравнивание внутри родительского LinearLayout:

((LinearLayout.LayoutParams)accept.getLayoutParams).gravity = Gravity.RIGHT;
((LinearLayout.LayoutParams)cancel.getLayoutParams).gravity = Gravity.RIGHT;

Я выбрал ПРАВО, поскольку сторона кнопок внутри диалога всегда противоположна стороне, по которой выравнивается текст. (Да - я тоже попробовал ВЛЕВО, ничего не изменилось).

Это не работает У кого-нибудь есть идеи как этого добиться? Кажется, они просто застряли на своем месте.

Изменить: Заголовок также не выровнен, я только что подтвердил это (по какой-то причине он отображается справа, как моя конфигурация системы, а не как моя языковая конфигурация).

Ответы на вопрос(2)

Ваш ответ на вопрос