如何更改alertdialog上的文本重力

时间:2017-08-24 06:54:33

标签: android alertdialog gravity

我一直在寻找一段时间,但我还没有找到解决这个问题的方法,我有一个警告对话,里面有几件(Here it is)

但正如您所看到的,文本与左侧对齐。有没有办法将项目文本与中心对齐?

这是我的一些代码

 chosenItem.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // setup the alert builder
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle("Choose a category");
                // add a list
                String[] items = {"Hey", "stack", "overflow", "please", "help", "Medical", "Ammo"};
                //  String[] items = {"Weapons", "Tools", "Items", "Clothing", "Components", "Medical", "Ammo"};

                builder.setItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                            case 0:
                                reciclador(3, rSlotFrame, rSlotText, rSlotProbabilidade, 30, 50, 1, 0, 100, 100, 100, 0, "cloth_icon", "metalfrags_icon", "sewingkit_icon", "");
                                break;
                            case 1:

                            case 2:

                            case 3:

                            case 4:

                            case 5:

                            case 6:

                        }
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();
                dialog.getWindow().setLayout(800, 700);
            }
        });

    }

提前致谢。

4 个答案:

答案 0 :(得分:1)

您可以使用自定义对话框来创建像这样的自定义布局

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

     <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:padding="10dp"
       android:text="title"
       android:textColor="#000" />

     <TextView
      android:id="@+id/tvTitle"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:padding="10dp"
      android:text="Lorem Ipsum is simply dummy text " />


    <TextView
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:padding="10dp"
     android:text="description" />

</LinearLayout>

现在创建自定义dailog llike下面的代码

 final Dialog dialog = new Dialog(LoginActivity.this);
dialog.setContentView(R.layout.custom_dialog_layout);
Textview tvTitle;
tvTitle = (Textview) dialog.findViewById(R.id.tvTitle);
Window window = dialog.getWindow();
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
window.setGravity(Gravity.BOTTOM);

tvTitle.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       // perform your action here 
    }
});
dialog.show();

答案 1 :(得分:0)

您可以在AlertDialog中使用自定义视图。

AlertDialog.Builder alertDialog = new AlertDialog.Builder(YourActivity.this);
View alertView = getLayoutInflater().inflate(R.layout.fragment_dialog, null, false);
alertDialog.setView(alertView);

在布局文件中添加文字的自定义要求。

来自documenation

  

如果您想在对话框中使用自定义布局,请通过调用AlertDialog.Builder对象上的setView()创建布局并将其添加到AlertDialog。

答案 2 :(得分:0)

您需要在初始状态

上应用对话框的主题
AlertDialog dialog = new AlertDialog(context, R.theme.DialogTheme);

并在theme.xml或styles.xml中声明主题

<style name="DialogTheme" parent="Animation.AppCompat.Dialog">
    <item name="android:itemTextAppearance">@style/DialogTextAppear</item>

</style>

<style name="DialogTextAppear" parent="TextAppearance.AppCompat">
    <item name="android:gravity">center</item>
</style>

答案 3 :(得分:0)

您可以通过此代码找到AlertDialog标题视图并设置重力手册,但首先必须像代码中一样创建一个AlertDialogBu​​ilder和一个Alert对话框

    MaterialAlertDialogBuilder dialogBuilder = new MaterialAlertDialogBuilder(this);
    dialogBuilder
    .
    .
    .
    AlertDialog alertDialog = dialogBuilder.create();
    alertDialog.show();
        LinearLayout titleTemplate = alertDialog.findViewById(R.id.title_template);
    titleTemplate.setGravity(Gravity.RIGHT);

您可以在alert_dialog.xml中找到所有视图,并在代码中找到并使用它。