2014-01-15 52 views
0

我有ListView的应用程序。这个ListView有一个进度条。当我点击这个进度条时,它显示一个隐藏的布局(这个布局包含带歌词的文本视图)。所以当我点击最后一个进度条时,它显示隐藏的布局,但我需要手动滚动。我希望滚动必须是自动的。 请帮帮我。如何自动滚动到列表视图的底部?

回答

2

尝试是这样的:

private void scroll2bottom() { 
    yourListView.post(new Runnable() { 
     @Override 
     public void run() { 
      yourListView.setSelection(yourListAdapter.getCount() - 1); 
     } 
    }); 
} 
+0

不,它不工作,我只是在onItemClick()中调用此方法。 –

+0

确认您实际上正在输入该方法,我已经在几个项目中使用了该代码,并且它一直有效! – nKn

+0

非常感谢@NKN。现在它的工作.... :-) –

2

您可能会发现smoothScrollByOffset()smoothScrollBy()方法ListView最有用。特别是smoothScrollBy()同时需要滚动距离和滚动动画应该发生的持续时间。使用这种方法,您可以精确控制滚动列表的距离。

1

在你的列表视图的布局只是使用transcriptMode

一个ListView具有内置的自动滚动

机器人:transcriptMode = “正常” witll滚动时它的底部,但不是当你滚动

和设置alwaysScroll将始终滚动到底部

,然后就可以设置了android:stackFromBottom =“真”,使其从底部

+0

默认情况下,滚动到最后,但我希望最初滚动必须在侧面,当我点击最后一个进度条,然后,隐藏布局即将到来,但它是没有出现,因为我需要手动滚动。但我想在这一刻滚动必须自动。 –

0

尝试生长在这样:

lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
lv.setStackFromBottom(true); 
+0

你应该尝试并多解释一下。 – albertjan

0

要滚动ListView控件编程,你可以使用它的smoothScrollByOffset (int offset)或smoothScrollToPosition(int position)方法,您可以找到有关ListView小部件的文档以及如何使用这些方法的here