Android выровнять по центру или выровнять правый заголовок и сообщение в MaterialDialog - PullRequest
0 голосов
/ 18 октября 2019

я использую 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();

, но в данной версии удаляется шов строитель. Как я могу это сделать?

Обновление 1: MaterialDialog поддержка базы изменения layoutDirection на языке системы Android, но у меня другая ситуация, и я хочу изменить базу layoutDirection для контента

1 Ответ

1 голос
/ 18 октября 2019

Вы не можете сделать это с диалогом по умолчанию. Но, очевидно, вы можете начать с собственного макета в диалоге.

Custom 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
  • , отправляющего любыеданные возвращаются в действие при нажатии кнопки диалога.

Это полный код примера проекта, показанного на изображении выше:

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();
    }
}

Примечания

  • Если вы обнаружите, что используете это в нескольких местах, подумайте о создании подкласса DialogFragment, как описано в документации .

См. Также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...