Desidero disattivare tutte le interazioni touch screen mentre viene visualizzata un'animazione. Non desidero utilizzare il metodo setClickable()
sui pulsanti all'inizio o alla fine dell'animazione perché è presente un numero elevato di pulsanti. Eventuali suggerimenti?Disabilita tutte le interazioni touch screen durante l'animazione
risposta
Nella propria attività, è possibile ignorare onTouchEvent
e sempre return true;
per indicare che si stanno gestendo gli eventi di tocco.
È possibile trovare la documentazione per quella funzione there.
Edit Ecco un modo è possibile disattivare tocco su tutto lo schermo, invece di gestire ogni vista una per una ... Primo modificare il layout corrente come questo:
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
< .... put your current layout here ... />
<TouchBlackHoleView
android:id="@+id/black_hole"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</FrameLayout>
e quindi definire la vostra abitudine vista con qualcosa di simile:
public class TouchBlackHoleView extends View {
private boolean touch_disabled=true;
@Override
public boolean onTouchEvent(MotionEvent e) {
return touch_disabled;
}
public disable_touch(boolean b) {
touch_disabled=b;
}
}
Poi, nell'attività, è possibile disattivare il contatto con
(TouchBlackHoleView) black_hole = findViewById(R.id.black_hole);
black_hole.disable_touch(true);
e attivare indietro con
black_hole.disable_touch(false);
risposta a questo problema
for (int i = 1; i < layout.getChildCount(); i++) { TableRow row = (TableRow) layout.getChildAt(i); row.setClickable(false);
selezionate tutte le righe della tabella di layout che aveva tutti i punti di vista e disattivato li
Un modo semplice per implementare questo è aggiungere un layout transaperente su di esso (aggiungilo all'altezza e alla larghezza del genitore di riempimento xml).
In avvio di animazione: transaparentlayout.setClickable(true);
Alla fine dell'animazione: transaparentlayout.setClickable(false);
Alla fine ho preso come una risposta fondamentale di @Matthieu e farlo funzionare modo. Decido di pubblicare la mia risposta perché mi ci vogliono circa 30 minuti per capire perché ho sbagliato.
XML
<...your path to this view and in the end --> .TouchBlackHoleView
android:id="@+id/blackHole"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Classe
public class TouchBlackHoleView estende View { touchDisable privato booleano = false;
public TouchBlackHoleView(Context context) {
super(context);
}
public TouchBlackHoleView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TouchBlackHoleView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return touchDisable;
}
public void disableTouch(boolean value){
touchDisable = value;
}
}
Utilizzando
blackHole = (TouchBlackHoleView) findViewById(R.id.blackHole);
blackHole.disableTouch(true);
Godetevi
- 1. Cocoa webView - Disabilita tutte le interazioni
- 2. Emula l'opzione Touch Screen assente, l'emulazione del dispositivo non fornisce risposta touch screen
- 3. Quali sono le ultime novità nella programmazione del touch screen?
- 4. Registra tutte le interazioni di rete dell'applicazione Java
- 5. R: Forza data.table per calcolare tutte le interazioni
- 6. Come rendere tutte le interazioni prima di utilizzare glmnet
- 7. Framework JavaScript per applicazioni desktop touch screen?
- 8. Programmazione di un'applicazione touch screen con SWING
- 9. Twitter Bootstrap è adatto per touch screen?
- 10. CSS non hover essere ignorato su dispositivi touch-screen
- 11. I miei tooltip possono essere adattati per il touch screen?
- 12. Trovare il tasso di campionamento del touch screen in Android
- 13. Attivazione di eventi di tocco in Chrome dal touch screen
- 14. Iniettare eventi touch screen, Android 5.0, dev/input/eventX
- 15. Come implementare un'applicazione Java Swing su Touch Screen
- 16. Come rendere Java JButton visivamente deprimente con il touch screen?
- 17. jquery click evento per tablet e telefoni touch screen
- 18. Disabilita e attiva Screen Saver in Windows 7
- 19. Gradle disabilita tutte le compilazioni incrementali e parallele
- 20. Disabilita la modalità screen saver/sleep tramite un sito Web
- 21. Come includere automaticamente tutte le interazioni a 2 vie in un modello glm in R
- 22. Schermo Android Splash-Screen durante il caricamento
- 23. Disabilita IntelliTrace durante l'esecuzione dell'applicazione
- 24. UIImage ScaleToFit disabilita le antialias?
- 25. disabilita gli eventi touch di RecyclerView (per evitare tocchi utente)?
- 26. Bootstrap Carousel Full Screen
- 27. jquery .live() interazioni evento
- 28. jqgrid disabilita le intestazioni
- 29. Verifica interazioni con servizi esterni
- 30. Come faccio a bloccare le interazioni Langohr RabbitMQ in clojure?
'Panorama vista = findViewById (R.id.whole_view); \t view.setOnTouchListener (nuova OnTouchListener() { pubblico onTouch booleana (Visualizza v, evento MotionEvent) {// metodo TODO generato automaticamente stub return true;} }); ' Ho scritto questo inizio della mia animazione, ma non ha funzionato gentilmente dirmi dove sbaglio –
qui whole_view è l'ID del mio layout principale –
Che tipo di vista è vero e che cosa stai cercando di disabilitare? È un pulsante? un ScrollView? ...? – Matthieu