2009-07-31 11 views
5

Czy jest sposób, w jaki mogę programowo wykonać rzutowanie na listę? Wiem, że jest małpa, która robi wszystkie te rzeczy, ale to wymaga połączenia komputera z adb itp. Chcę to zrobić z moją aplikacją na dowolnym telefonie, bez małpy.Programowo Fling ListView Android

Dzięki Faisal

Odpowiedz

-1

Można udawać z Anim (myślę accelerate_decelerate_interpolator może wykonać pracę).

Ponadto wydaje się, że jest wsparcie dla przewijania widoku swojego autorstwa:

public void scrollBy (int x, int y) 

Przesuń przewijane pozycję widoku. Spowoduje to wywołanie onScrollChanged (int, int, int, int), a widok zostanie unieważniony.

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) 

Ustaw przewijane pozycję widoku. Spowoduje to wywołanie onScrollChanged (int, int, int, int), a widok zostanie unieważniony.

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

Hej Lucas, czy masz fragment kodu, jestem całkiem zdezorientowany. Dzięki, Faisal –

+1

Witam, dodałem więcej informacji, które pomogą. –

+0

Dzięki człowieku, nie wiedziałem o tym! –

2

Istnieją dwie metody "płynnego przewijania" zamiast przeskakiwania do pozycji.

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

dla smoothScrollBy() i smoothScrollTo().

Mam nadzieję, że to pomoże.

+0

Masz na myśli przewijanie, a pytanie dotyczyło listy. Listview ma również kilka ciekawych funkcji: smootScrollToPosition i smootScrollByOffset. Jednak są one dostępne tylko na poziomie 8 i 11 api. 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); 

}