La conception des matériaux dispose d'un menu déroulant exposé implémenté avec un autocompletetextView comme ceci:
<com.google.Android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="@string/hint_text">
<AutoCompleteTextView
Android:id="@+id/filled_exposed_dropdown"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
</com.google.Android.material.textfield.TextInputLayout>
Mais je dois avoir la même apparence une sensation, mais avec le comportement des fileurs (sans autocomplete, il suffit d'afficher la pop up et de sélectionner un élément).
J'ai désactivé l'édition sur l'autocompletetextview pour éviter d'utiliser la complète automatique, mais après avoir sélectionné l'un de l'élément, alors l'autocomplète indique simplement les éléments correspondant au texte de l'élément sélectionné attribué à un filtre utilisé dans cette vue. Ceci est le code:
<AutoCompleteTextView
Android:id="@+id/filled_exposed_dropdown"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="16dp"
**Android:editable="false"**/>
Aussi, j'ai mis un auditeur à ouvrir la liste des articles lorsque vous cliquez dessus
val editTextFilledExposedDropdown = findViewById<AutoCompleteTextView>(R.id.filled_exposed_dropdown)
editTextFilledExposedDropdown.setAdapter(adapter)
editTextFilledExposedDropdown.setOnClickListener {
(it as AutoCompleteTextView).showDropDown()
}
Donc, je voudrais savoir s'il est possible de mettre en œuvre cela mais avec un spinner
C'était ma tentative d'utilisation d'un spinner, mais elle n'affiche pas le style correctement OUTDODODODE.DENSE.EXPOSEDDropDownMenu et affiche également l'icône du bas de la flèche, je pense que l'une pour le style et l'autre pour le fileur.
c'était le code avec le fileur:
<com.google.Android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Hint">
<com.google.Android.material.textfield.TextInputEditText
Android:layout_width="match_parent"
Android:layout_height="match_parent"/>
</com.google.Android.material.textfield.TextInputLayout>
<com.google.Android.material.textfield.TextInputLayout
Android:id="@+id/layout_id"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Currency">
<androidx.appcompat.widget.AppCompatSpinner
Android:id="@+id/my_spinner"
Android:layout_width="match_parent"
Android:layout_height="match_parent"/>
</com.google.Android.material.textfield.TextInputLayout>
Que diriez-vous de créer PopupMenu
au lieu de AutoCompleteTextView
Voici un exemple de la création de menu In Android:
Context wrapper = new ContextThemeWrapper(getContext(), R.style.popupMenuStyle);
//yourView is the view that you want to display the menu above it.
PopupMenu popupMenu = new PopupMenu(wrapper, yourView);
popupMenu.getMenuInflater().inflate(R.menu.menu, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(item -> {
switch (item.getItemId()) {
case R.id.delete:
//delete
break;
case R.id.edit:
//edit
break;
}
popupMenu.dismiss();
return true;
});
popupMenu.show();
menu.xml
Fichier Inside Men Dossier:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item
Android:id="@+id/edit"
Android:title="@string/edit">
</item>
<item
Android:id="@+id/delete"
Android:title="@string/delete">
</item>
</menu>