为改变AlertDialog(support.v7之一)中的按钮对齐方式而奋斗了数小时,因为它们不会根据区域设置视图方向对齐自己,尽管整个应用程序仍然对齐到左侧以及AlertDialog中的文本。 (为什么会发生这种情况,你说?我编程地配置语言环境语言为“en”,因为这是我的默认应用程序语言,即使系统语言环境可能是其他语言)。更改AlertDialog按钮的对齐方式
所以就像我说的,我不需要触碰对话框内的消息,但作为一个例子,这是如何改变它的方向:
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.RIGHT); // or LEFT
当然它不工作按钮,因为我需要改变布局的重力。
以下是我找到的按钮(后我呼吁当然AlertDialog.Builder秀(),否则会是null):
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;
我选择自该对话框内的按钮的侧RIGHT总是相反,其中的文本对齐到一边。(是的 - 我也尝试过,没有改变)。
这不起作用。有没有人有一个想法如何实现这一目标?看起来他们只是坚持住自己的位置。
编辑: 标题也没有对齐,我刚刚证实了这一点(出于某种原因,它出现在右边,像我的系统配置,而不是像我的区域设置配置)。
但我想的观点看本地,而不是定制的。我不明白为什么我需要创建一个整体,只是为了对齐按钮...但是如果您认为这是唯一的方法,那么我会采用AlertDialog的原始布局并稍微改变它。你知道在哪里可以找到它吗? – Jjang
还有一件事要尝试...如果您在显示对话框之前正在设置按钮的layoutParams的重力,请尝试在dialog.show()之后执行操作。 – GreyBeardedGeek
我正在做它之后,当然:(哇,那些按钮不会移动吧? – Jjang