2009-07-31 17 views
5

Esiste un modo per eseguire in modo programmatico un Fling su un listview? So che c'è una scimmia che fa tutte queste cose ma che richiede una connessione al computer con adb ecc. Ecc. Voglio farlo con la mia app su qualsiasi telefono, senza scimmia.Programmare Fling ListView Android

Grazie, Faisal

risposta

-1

Si può fingere con un anim (credo accelerate_decelerate_interpolator può fare il lavoro).

Inoltre sembra che ci sia il supporto per lo scorrimento la visualizzazione da soli:

public void scrollBy (int x, int y) 

spostare la posizione scorrimento della visualizzazione. Ciò causerà una chiamata a onScrollChanged (int, int, int, int) e la vista verrà invalidata.

Parameters 
x the amount of pixels to scroll by horizontally 
y the amount of pixels to scroll by vertically 
public void scrollTo (int x, int y) 

impostare la posizione scorrimento della visualizzazione. Ciò causerà una chiamata a onScrollChanged (int, int, int, int) e la vista verrà invalidata.

 
Parameters 
x the x position to scroll to 
y the y position to scroll to 
+0

Ehi Lucas, hai un frammento di codice, sono abbastanza confuso. Grazie, Faisal –

+1

Ciao, ho aggiunto più informazioni che ti aiuteranno. –

+0

Grazie amico non lo sapevo! –

2

Esistono due metodi per "smussare lo scorrimento" anziché saltare a una posizione.

Partenza http://developer.android.com/reference/android/widget/ScrollView.html

per smoothScrollBy() e smoothScrollTo().

Spero che questo aiuti.

+0

Ti stai riferendo a scrollview e la domanda era per un listview. Listview ha anche alcune caratteristiche chiare: smootScrollToPosition e smootScrollByOffset. Tuttavia, questi sono disponibili solo in api livello 8 e 11 rispettivamente. http://developer.android.com/reference/android/widget/ListView.html#smoothScrollToPosition(int) –

1
private AnimationSet set; 

public void onClick(View v) { 
    if(v.getId() == R.id.pullbutton){ 
     artListview.setVisibility(View.INVISIBLE); 
     if(set == null){ 
      set = new AnimationSet(true); 
      Animation animation = new AlphaAnimation(0.0f, 1.0f); 
      animation.setDuration(100); 
      set.addAnimation(animation); 

      animation = new TranslateAnimation(
        Animation.RELATIVE_TO_SELF, 0.0f, 
        Animation.RELATIVE_TO_SELF, 0.0f,    
        Animation.RELATIVE_TO_SELF, -1.0f, 
        Animation.RELATIVE_TO_SELF, 0.0f 
      ); 
      animation.setDuration(1000); 
      set.addAnimation(animation); 
     } 
     showPullDownSectionList(); 
    } 

} 


public void showPullDownSectionList() { 
    flipper = (ViewFlipper) findViewById(R.id.ViewFlipper01); 
    flipper.setVisibility(View.VISIBLE); 
    setLayoutAnim_slidedownfromtop(flipper); 
} 

public void setLayoutAnim_slidedownfromtop(ViewFlipper flipper) { 
    LayoutAnimationController controller = 
     new LayoutAnimationController(set, 0.25f); 
    flipper.setLayoutAnimation(controller); 

}