Android 在 DialogFragment 上设置布局方向
Android setLayoutDirection on DialogFragment
我最近完成了一个项目的构建,我的下一个目标是专门为 RTL 创建一个构建风格,一个重要的注意事项是我需要强制 RTL 布局,独立于设备语言。
所以我设法使用视图方法 setLayoutDirection 在大部分应用程序上强制使用 RTL,并旋转了所有不合作的视图,但出于某种原因,我不能' t 镜像应用程序中的对话框,这些对话框似乎仅在设备语言更改时才会翻转。
我试图在onCreateDialog中翻转对话框,访问getView,返回null,我不知道我还能做什么...
有人可以帮我将 DialogFragment 翻转到 RTL 吗?
谢谢。
您可以将 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;
}
我最近完成了一个项目的构建,我的下一个目标是专门为 RTL 创建一个构建风格,一个重要的注意事项是我需要强制 RTL 布局,独立于设备语言。
所以我设法使用视图方法 setLayoutDirection 在大部分应用程序上强制使用 RTL,并旋转了所有不合作的视图,但出于某种原因,我不能' t 镜像应用程序中的对话框,这些对话框似乎仅在设备语言更改时才会翻转。 我试图在onCreateDialog中翻转对话框,访问getView,返回null,我不知道我还能做什么...
有人可以帮我将 DialogFragment 翻转到 RTL 吗?
谢谢。
您可以将 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;
}