2010-03-04 3 views
2

J'ai un SeekBar (seekBar1) sur ma mise en page avec une petite hauteur (3dp). En raison de sa petite taille est difficile de sélectionner cette vue et je veux mettre en œuvre un autre moyen de mettre à jour la progression de ma vue de recherche. Pour faire cela je pense à quelque chose comme ça: je dois mettre un autre plus grand et invisible (android:background = "#00000000") seekBar (seekBar2) sous mon petit seekBar1, je mets le onSeekBarChangeListener pour seekBar2, et chaque fois que je touche le seekBar2 et onSeekBarChange() s'appelle Je vais mettre à jour la progression de seekBar1.Est-il possible de lancer seekBar OnSeekBarChangeListener à partir d'une autre vue (différente de ma seekBar)?

Je voudrais demander s'il est possible de le faire d'une meilleure façon?

Ceci est mon code:

seekBarSecond.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

    @Override 
    public void onStopTrackingTouch(SeekBar seekBar) { try { 
    musicService.seekTo(seekBar.getProgress()); 
           seekBar.setProgress(seekBarSecond.getProgress()); 

    } catch (RemoteException e) { 
    e.printStackTrace(); 
    } 

    } 

    @Override 
    public void onStartTrackingTouch(SeekBar seekBar) { 
    // TODO Auto-generated method stub 

    } 

    @Override 
    public void onProgressChanged(SeekBar seekBar, int progress, 
    boolean fromUser) { 


    } 
    }); 

    seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){ 
    public void onStopTrackingTouch(SeekBar seekBar) { 

    try { 
    musicService.seekTo(seekBar.getProgress()); 
    } catch (RemoteException e) { 
    e.printStackTrace(); 
    } 
    } 

    public void onStartTrackingTouch(SeekBar seekBar){ 

    } 

    public void onProgressChanged(SeekBar seekBar, int progress, 
    boolean fromUser){ 

    } 
    }); 

Merci!

Répondre

5

J'ai eu exactement le même problème, et j'ai d'abord essayé votre solution ... cela fonctionne, mais vous pouvez en effet faire mieux: il vous suffit de spécifier le remplissage. Avec le rembourrage (vous aurez probablement besoin seulement de rembourrage haut et bas), la zone tactile est en fait la taille du widget, y compris le rembourrage. Donc, l'ajout de 16 pixels de remplissage supérieur et inférieur ajoutera 32 pixels aux limites tactiles du SeekBar.

Espérons que ça aide!

Questions connexes