J'ai un ToggleButton, lorsque vous cliquez dessus, je ne veux pas que l'état change. Je vais gérer les changements d'état moi-même quand après avoir reçu des commentaires de tout ce que le bouton a basculé. Comment puis-je empêcher le changement d'état sur le clic?Empêcher ToggleButton de l'état de commutation
Répondre
Bien que je pense que vous pouvez simplement le marquer comme désactivé, je ne pense pas que ce soit une bonne idée, car les utilisateurs sont habitués à une certaine sémantique d'un tel bouton.
Si vous voulez seulement montrer un état, pourquoi n'utilisez-vous pas un ImageView et montrez des images différentes selon l'état?
Vous pouvez implémenter votre propre ToggleButton
avec la méthode surchargée toggle()
avec corps vide.
Vous pouvez simplement utiliser CheckedTextView à la place.
Bien sûr, vous devez définir une image d'arrière-plan et un texte en fonction de l'état, mais à part celles (que vous avez peut-être déjà utilisées), c'est une bonne alternative.
est ici un exemple de code dans le cas où vous manquez les attributs texton et textOff:
CheckableTextView.java:
public class CheckableTextView extends CheckedTextView {
private CharSequence mTextOn, mTextOff;
public CheckableTextView (final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CheckableTextView, defStyle, 0);
mTextOn = a.getString(R.styleable.CheckableTextView_textOn);
mTextOff = a.getString(R.styleable.CheckableTextView_textOff);
a.recycle();
}
public CheckableTextView(final Context context, final AttributeSet attrs) {
this(context, attrs, 0);
}
public CheckableTextView(final Context context) {
this(context, null, 0);
}
@Override
public void setChecked(final boolean checked) {
super.setChecked(checked);
if (mTextOn == null && mTextOff == null)
return;
if (checked)
super.setText(mTextOn);
else
super.setText(mTextOff);
}
public void setTextOff(final CharSequence textOff) {
this.mTextOff = textOff;
}
public void setTextOn(final CharSequence textOn) {
this.mTextOn = textOn;
}
public CharSequence getTextOff() {
return this.mTextOff;
}
public CharSequence getTextOn() {
return this.mTextOn;
}
}
dans res/valeurs/attr.xml:
<declare-styleable name="SyncMeCheckableTextView">
<attr name="textOn" format="reference|string" />
<attr name="textOff" format="reference|string" />
</declare-styleable>
autre La solution possible serait d'utiliser setClickable (false) sur ToggleButton et de gérer onTouchListener lorsque l'action de mouvement est ACTION_UP.
- 1. Empêcher GtkTreeRow d'être sélectionné quand on clique sur toggleButton
- 2. Comportement de clic ToggleButton Style
- 3. Comment changer ToggleButton de ViewModel?
- 4. Personnalisation de ToggleButton sans PNG
- 5. Android ToggleButton
- 6. AirPlane ToggleButton?
- 7. Comment puis-je empêcher un ToggleButton de basculer sans définir IsEnabled
- 8. Comment empêcher Eclipse de se bloquer lors de la commutation des espaces de travail
- 9. ToggleButton Style ne fonctionne que sur le dernier ToggleButton
- 10. Android - ToggleButton transparent sur Google Map
- 11. Liaison à ToggleButton
- 12. Personnalisé ToggleButton dans Xamarin.Android
- 13. UiBinder fonctionne avec ToggleButton
- 14. WPF ToggleButton et DelegateCommand
- 15. Application Android - Java - ToggleButton
- 16. débutants malheurs togglebutton tableaux?
- 17. ToggleButton IsChecked déclencheur
- 18. Android indicateur ToggleButton
- 19. Manipulation togglebutton ControlTemplate
- 20. Grille de données WPF avec liaison ToggleButton
- 21. Comment changer l'état de ToggleButton par programme?
- 22. Problème de liaison WPF ToggleButton IsChecked
- 23. WPF Modèle de liaison dans ToggleButton UserControl
- 24. ToggleButton NullPointerException dans Android
- 25. Redimensionner dynamiquement ToggleButton Android?
- 26. Problème de commutation UITabbarcontroller
- 27. Déclaration correcte de commutation?
- 28. commutation de paquets
- 29. Appcelerator fenêtres de commutation
- 30. Pointeurs/valeurs de commutation
J'ai utilisé tgl.setChecked (! Tgl.isChecked()); dans mon écouteur onClick. (tgl os la vue ToggleButton) –