Alterando o alinhamento dos botões AlertDialog
Há horas que brigamos para alterar o alinhamento dos botões dentro do AlertDialog (support.v7 one), pois eles não se alinham de acordo com a direção da exibição da localidade,apesar de todo o aplicativo alinhar à esquerda e também o texto dentro do AlertDialog.
(Por que isso aconteceu? - Estou programaticamente configurando o idioma do local para "en", já que esse é o idioma padrão do aplicativo, mesmo que o local do sistema possa ser outra coisa.
Então, como eu disse, não preciso tocar na mensagem dentro da caixa de diálogo, mas como exemplo, é assim que você muda de direção:
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.RIGHT); // or LEFT
É claro que não funciona nos botões, pois preciso alterar a gravidade do layout.
Aqui está como encontro os botões (depois que chamo show () no AlertDialog.Builder, é claro, caso contrário, eles seriam nulos):
AppCompatButton accept = (AppCompatButton)dialog.findViewById(android.R.id.button1);
AppCompatButton cancel = (AppCompatButton)dialog.findViewById(android.R.id.button2);
E aqui está como eu tento alterar o alinhamento deles dentro do LinearLayout pai:
((LinearLayout.LayoutParams)accept.getLayoutParams).gravity = Gravity.RIGHT;
((LinearLayout.LayoutParams)cancel.getLayoutParams).gravity = Gravity.RIGHT;
Eu escolhi DIREITA, pois o lado dos botões dentro da caixa de diálogo é sempre oposto ao lado em que o texto está alinhado. (Sim - eu tentei ESQUERDA também, nada mudou).
Isso não funciona. Alguém tem uma idéia de como conseguir isso? Parece que eles estão presos no lugar deles.
Edit: Title também não está alinhado, apenas confirmei isso (por algum motivo, ele aparece à direita, como a configuração do sistema e não a configuração do local).