Android上的自定义对话框:如何将其标题集中在一起?

Van*_*nel 65 android modal-dialog

我正在开发一个Android应用程序.

如何将我正在使用的自定义对话框的标题居中?

谢谢.

Raj*_*ana 106

以编程方式完成此操作的另一种方法是使用setCustomTitle():

// Creating the AlertDialog with a custom xml layout (you can still use the default Android version)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.viewname, null);
builder.setView(view);

TextView title = new TextView(this);
// You Can Customise your Title here 
title.setText("Custom Centered Title");
title.setBackgroundColor(Color.DKGRAY);
title.setPadding(10, 10, 10, 10);
title.setGravity(Gravity.CENTER);
title.setTextColor(Color.WHITE);
title.setTextSize(20);

builder.setCustomTitle(title);
Run Code Online (Sandbox Code Playgroud)


Chr*_*sJD 58

刚刚发现这篇文章,同时试图找出如何做同样的事情.这是我为将来发现这一点的其他人做的.

样式xml如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="PauseDialog" parent="@android:style/Theme.Dialog">
            <item name="android:windowTitleStyle">@style/PauseDialogTitle</item>
        </style>

        <style name="PauseDialogTitle" parent="@android:style/TextAppearance.DialogWindowTitle">
            <item name="android:gravity">center_horizontal</item>
        </style>
        <style name="DialogWindowTitle">
        <item name="android:maxLines">1</item>
        <item name="android:scrollHorizontally">true</item>
        <item name="android:textAppearance">@android:style/TextAppearance.DialogWindowTitle</item>
        </style>
    </resources>
Run Code Online (Sandbox Code Playgroud)

在我的活动onCreateDialog方法的对话框我想要样式我创建对话框,如下所示:

Dialog pauseDialog = new Dialog(this, R.style.PauseDialog);
pauseDialog.setTitle(R.string.pause_menu_label);
pauseDialog.setContentView(R.layout.pause_menu);
Run Code Online (Sandbox Code Playgroud)

  • 好挖.实际上,您可以将其简化为两层.抱歉格式不佳... <style name ="CustomDialog"parent ="@ android:style/Theme.Dialog"> <item name ="android:windowTitleStyle"> @ style/MyDialogWindowTitle </ item> </ style> <style name ="MyDialogWindowTitle"parent ="@ android:style/TextAppearance.DialogWindowTitle"> <item name ="android:textColor"> @ android:color/white </ item> <item name ="android:gravity"> center_horizo​​ntal </ item> </ style> (2认同)

Hes*_*sam 8

你也可以在代码中完成它.假设您有对话框片段,然后添加以下代码行.

@Override
public void onStart()
{
    super.onStart();

    TextView textView = (TextView) this.getDialog().findViewById(android.R.id.title);
    if(textView != null)
    {
        textView.setGravity(Gravity.CENTER);
    }
}
Run Code Online (Sandbox Code Playgroud)