gpt4 book ai didi

android - Android在MaterialDialog中对齐中心或对齐右标题和消息

转载 作者:行者123 更新时间:2023-12-02 13:34:54 32 4
gpt4 key购买 nike

我在this地址中使用MaterialDialog版本3.1.1

我想在对话框中右对齐或居中对齐标题和消息,但是找不到在文档中执行此操作的方法。

我检查此页面https://github.com/afollestad/material-dialogs/issues/434,有人使用MaterialDialog.Builder像这样的代码:

new MaterialDialog.Builder(MainActivity.this)
.titleGravity(GravityEnum.END)
.contentGravity(GravityEnum.END)
.title("چقدر عجله داری بابا!")
.content("این ویژگی در نسخه‌ی بعدی فعال خواهد شد! برو بعدن بیا!")
.positiveText("باشه. :(")
.negativeText("چه بهد")
.typeface("iran_sans_bold","iran_sans")
.callback(new MaterialDialog.ButtonCallback() {
@Override
public void onPositive(MaterialDialog dialog) {
Log.wtf("+","shod");
}

@Override
public void onNegative(MaterialDialog dialog) {
Log.wtf("-","shod");
}
})
.show();

但它接缝了 build 者在这个版本中删除。我怎样才能做到这一点?

更新1:
MaterialDialog 支持更改基于android系统语言的layoutDirection,但是我有不同的情况,我想更改基于内容的layoutDirection

最佳答案

您不能使用默认对话框来做到这一点。但是显然,您可以在对话框上以自己的布局开始。

自定义AlertDialog

这个完整的示例包括将数据传递回 Activity 。

enter image description here

创建自定义布局

此简单示例使用带有EditText的布局,但是您可以使用任何喜欢的布局替换它。

custom_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

</LinearLayout>

在代码中使用对话框

关键部分是
  • 使用setView将自定义布局分配给AlertDialog.Builder
  • 单击对话框按钮后,
  • 会将所有数据发送回 Activity 。

  • 这是上图所示示例项目的完整代码:

    MainActivity.java
    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }

    public void showAlertDialogButtonClicked(View view) {

    // create an alert builder
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Name");

    // set the custom layout
    final View customLayout = getLayoutInflater().inflate(R.layout.custom_layout, null);
    builder.setView(customLayout);

    // add a button
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    // send data from the AlertDialog to the Activity
    EditText editText = customLayout.findViewById(R.id.editText);
    sendDialogDataToActivity(editText.getText().toString());
    }
    });

    // create and show the alert dialog
    AlertDialog dialog = builder.create();
    dialog.show();
    }

    // do something with the data coming from the AlertDialog
    private void sendDialogDataToActivity(String data) {
    Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
    }
    }

    笔记
  • 如果您发现自己在多个地方都使用过此功能,请考虑按照documentation中的说明制作DialogFragment子类。

  • 也可以看看
  • Android Alert Dialog with one, two, and three buttons
  • How can I display a list view in an Android Alert Dialog?
  • 关于android - Android在MaterialDialog中对齐中心或对齐右标题和消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58457053/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com