java - Android AlertDialog 设置项目对齐中心

标签 java android android-layout android-studio android-alertdialog

如何将 AlertDialog 中的项目与 dialog.setItems() 创建的中心对齐?

例如,这将创建一个带有多次选项的对话框,默认左对齐:

AlertDialog.Builder timeOutDialog = new AlertDialog.Builder(getActivity());
timeOutDialog.setTitle("Set Timer");
final String[] types = {"5 min", "15 min", "30 min", "1 hour", "3 hours", "6 hours", "12 hours", "24 hours"};

timeOutDialog.setItems(types, new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
        switch(which){
            case 0: // 5m
                timerLength = 0;
                break;

            case 1: // 15m
                timerLength = 1;
                break;

            // ...
        }
        timeOutButton.setText(types[which]);
    }

});

AlertDialog dialog = timeOutDialog.show();

我知道有 ID 可以设置标题和消息的对齐方式。是否有 ID 允许像标题和消息一样设置对齐方式(例如 android.R.id.message)?

我搜索了答案,许多人说唯一的方法是扩充对话框或使用自定义居中微调器创建自定义对话框 xml。这些是我唯一的选择吗?

最佳答案

感谢大家的关注,

我通过使用名为 material-dialogs 的库找到了解决方案

有了它,我可以将标题和微调器居中。根据我的经验,到目前为止,使用 vanilla android 将弹出微调器居中是非常耗时的。

@OnClick(R.id.list)
    public void showList() {
        new MaterialDialog.Builder(this)
                .title(R.string.socialNetworks)
                .items(R.array.socialNetworks)
                .itemsCallback(new MaterialDialog.ListCallback() {
                    @Override
                    public void onSelection(MaterialDialog dialog, View view, int which, CharSequence text) {
                        showToast(which + ": " + text);
                    }
                }).itemsGravity(GravityEnum.CENTER)
                .titleGravity(GravityEnum.CENTER)
                .show();
    }

关于java - Android AlertDialog 设置项目对齐中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40833302/

相关文章:

java - 在满足条件之前防止关闭 AlertDialog.Builder

java - 带有java的Android IP地址

java - 另一种颜色是 Cardview 中的绑定(bind)颜色?

android - 支持安卓不同屏幕

java - 安卓开发 : Navigation View vs App Bar

android - Android TranslateAnimation 的问题

java 8更改列表以使用列表实例进行映射

java - java小程序中的移动图像

java - 通过递归交换 LinkedList 中的每个第 1 个和第 3 个元素数据

android - 蓝牙 Le Gatt 找不到任何设备