Je développe une application Android.
Comment centrer le titre d'une boîte de dialogue personnalisée que j'utilise?
Merci.
Je développe une application Android.
Comment centrer le titre d'une boîte de dialogue personnalisée que j'utilise?
Merci.
Une autre façon de procéder par programme consiste à utiliser 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);
Je viens de trouver ce post en essayant de comprendre comment faire la même chose. Voici comment je l'ai fait pour quiconque trouve cela dans le futur.
Le style xml est le suivant:
<?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>
Et dans mes activités onCreateDialog pour la boîte de dialogue que je veux styler, je crée la boîte de dialogue comme suit:
Dialog pauseDialog = new Dialog(this, R.style.PauseDialog);
pauseDialog.setTitle(R.string.pause_menu_label);
pauseDialog.setContentView(R.layout.pause_menu);
Vous pouvez aussi le faire en code. Supposons que vous ayez un fragment de dialogue, puis ajoutez les lignes de code suivantes.
@Override
public void onStart()
{
super.onStart();
TextView textView = (TextView) this.getDialog().findViewById(android.R.id.title);
if(textView != null)
{
textView.setGravity(Gravity.CENTER);
}
}
Si vous n'appelez pas AlertDialog.Builder.setIcon()
et AlertDialog.Builder.setTitle()
, votre boîte de dialogue personnalisée ne montrera pas la vue de titre intégrée / par défaut. Dans ce cas, vous pouvez ajouter votre titre personnalisé Voir:
AlertDialog.Builder.setView(View view)
Dès que c'est vous qui créez cette vue, il est possible d'implémenter tout type d'alignement.
Vous avez quelques astuces de départ pour modifier le titre d'une boîte de dialogue: http://stackoverflow.com/questions/820398/android-change-custom-title-view-at-run-time/866184#866184 Don't savoir si elle peut être centrée (je n'ai pas essayé), mais si c'est une vue personnalisée, je suppose que c'est très possible.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.