【问题标题】:Programmatically Fling ListView Android以编程方式抛出 ListView Android
【发布时间】:2010-11-15 22:38:03
【问题描述】:

有没有办法以编程方式在列表视图上执行 Fling?我知道有猴子可以做所有这些事情,但这需要与 adb 等的计算机连接。我想在任何手机上使用我的应用程序来完成所有这些事情。

谢谢, 费萨尔

【问题讨论】:

    标签: android listview


    【解决方案1】:

    有两种方法可以“平滑滚动”而不是跳转到某个位置。

    查看http://developer.android.com/reference/android/widget/ScrollView.html

    对于smoothScrollBy()smoothScrollTo()

    希望这会有所帮助。

    【讨论】:

    • 您指的是滚动视图,而问题是针对列表视图。 Listview 也有一些简洁的特性:smootScrollToPosition 和 smootScrollByOffset。但是,这些仅在 api 级别 8 和 11 中可用。 developer.android.com/reference/android/widget/…
    【解决方案2】:
    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);
    
    }
    

    【讨论】:

      【解决方案3】:

      你可以用动画来伪造它(我认为Accelerate_decelerate_interpolator可以完成这项工作)。

      似乎还支持您自己滚动视图:

      public void scrollBy (int x, int y)
      

      移动视图的滚动位置。这将导致调用 onScrollChanged(int, int, int, int) 并且视图将失效。

      参数
      x 水平滚动的像素数量
      y 垂直滚动的像素数量
      
      public void scrollTo (int x, int y)
      

      设置视图的滚动位置。这将导致调用 onScrollChanged(int, int, int, int) 并且视图将失效。

      参数 x 要滚动到的 x 位置 y 要滚动到的 y 位置

      【讨论】:

      • 嘿卢卡斯,你有代码 sn-p,我很困惑。谢谢,费萨尔
      • 您好,我添加了更多对您有帮助的信息。
      • 这不起作用。它滚动包含 listView 的视图,但不是实际的 listView...抱歉...仍在寻找。
      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 2011-02-09
      • 2011-03-20
      • 2016-03-10
      • 1970-01-01
      相关资源
      最近更新 更多