为了账号安全,请及时绑定邮箱和手机立即绑定

以编程方式滚动到Android ListView中的特定位置

以编程方式滚动到Android ListView中的特定位置

郎朗坤 2019-08-16 16:54:10
以编程方式滚动到Android ListView中的特定位置如何以编程方式滚动到某个特定位置ListView?例如,我有一个String[] {A,B,C,D....},我需要将顶部可见项设置ListView为我的索引21 String[]。
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

对于直接滚动:

getListView().setSelection(21);

为了平滑滚动:

getListView().smoothScrollToPosition(21);


查看完整回答
反对 回复 2019-08-16
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

对于具有滚动持续时间的SmoothScroll:

getListView().smoothScrollToPositionFromTop(position,offset,duration);

参数
position - >滚动到
偏移的位置---->滚动完成时从视图顶部到位的所需距离(以像素
为单位)duration->滚动使用的毫秒数

注意:来自API 11。

HandlerExploit的回答是我正在寻找的,但我的listview非常冗长,并且还有字母滚动条。然后我发现同样的功能也可以采取其他参数:)


编辑:(来自AFDs建议)

要定位当前选择:

int h1 = mListView.getHeight();int h2 = listViewRow.getHeight();mListView.smoothScrollToPositionFromTop(position, h1/2 - h2/2, duration);


查看完整回答
反对 回复 2019-08-16
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

将代码放在处理程序中,如下所示,

public void timerDelayRunForScroll(long time) {
        Handler handler = new Handler(); 
        handler.postDelayed(new Runnable() {           
            public void run() {   
                try {
                    lstView.smoothScrollToPosition(YOUR_POSITION);
                } catch (Exception e) {}
            }
        }, time); 
    }

然后调用这个方法,如,

timerDelayRunForScroll(100);

干杯!!!


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 664 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信