我在一个活动中有两个FrameLayouts。第一个包含recylerview或listview,第二个包含根据情况的不同控件。
当控件添加到第二个帧布局中时,我想使recylerview中的选定项目对用户可见。
当选择一个项目时,我在recylerview布局管理器上使用scrollToPosition,但这是在新控件在屏幕上可见之前调用的,因此recylerview中的所选项目可以不在屏幕上。
有人知道我如何实现这一目标吗?
答案 0 :(得分:0)
在大多数情况下,我设法使此工作正常进行。在onCreateView中使用以下代码。希望这对其他人有帮助
view.addOnLayoutChangeListener(new View.OnLayoutChangeListener()
{
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom)
{
if ((bottom < oldBottom) && currentlyPlayingFile != null && currentlyPlayingFilePos != -1)
{
if (currentlyPlayingFilePos > (mFileData.length * 0.75))
{
int moveAmount = oldBottom - bottom;
if (currentlyPlayingFilePos == (mFileData.length - 1))
moveAmount += 35;
mRecyclerView.scrollBy(0, moveAmount);
}
else
{
mRecyclerView.scrollToPosition(currentlyPlayingFilePos);
}
}
}
});