DialogFragment

时间:2016-06-04 00:46:44

标签: java android dialog right-to-left dialogfragment

我最近完成了一个项目,我的下一个目标是专门为RTL创建一个构建版本,一个重要的注意事项是我需要强制RTL布局,独立于设备语言。

所以我设法使用视图方法 setLayoutDirection 对大多数应用程序强制执行RTL并旋转所有不合作的视图,但由于某种原因,我无法做到镜像应用程序中的对话框,这些对话框仅在设备语言更改时才会翻转。 我试图在onCreateDialog中翻转对话框,访问返回null的getView,我不确定我还能做什么...

有人可以帮我翻转DialogFragment到RTL吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以将getWindow().getDecorView().setLayoutDirection()用于AlartDialog,布局方向将更改标题和内容,但不会更改按钮。

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    builder.setPositiveButton("OK", null);
    builder.setNegativeButton("Cancel", null);

    AlertDialog alertDialog = builder.create();

    // Here you can change the layout direction via setLayoutDirection()
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        alertDialog.getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
    }

    return alertDialog;
}