2017-03-20 50 views
0

我使用第三方代码成功地在我的应用程序中添加了快速滚动。在屏幕的右侧绘制字母,并给我点击的字母然后我把下面的代码移动到该块。哪个工作正常。以下是我的代码:添加快速滚动后,将项目移动到屏幕顶部

mSideBarView.setOnTouchLetterChangeListener(new WaveSideBarView.OnTouchLetterChangeListener() { 
     @Override 
     public void onLetterChange(String letter) { 
      //int pos = adapter.getLetterPosition(letter); 
      char c=letter.charAt(0); 

      if(c=='#'){ 

       Contact con = mAllContactlist.get(0); 
       char firstCharacter = mAllContactlist.get(0).getmName().charAt(0); 

       if((firstCharacter >= '0' && firstCharacter <= '9')) 
        mRecyclerView.scrollToPosition(0); 
      } 
      else{ 
       int pos =getLetterPosition(c); 
       if (pos != -1) { 
        mRecyclerView.scrollToPosition(pos); 

       } 
      } 
     } 
    }); 

正如你所看到的,我正在使用scrolltoposition来查看特定的recyclerview单元格。但是该单元格不在默认应用程序的屏幕之上。为了清楚我添加的图像。 First Image[![][1]] 2

我按下U,它移动到U标签这是好的,但我想在默认应用程序做的屏幕顶部显示此。以下是默认电话簿应用程序的屏幕截图。 enter image description here

回答

1

使用功能scrollToPositionWithOffset代替scrollToPosition在RecyclerView此:

//Scroll item pos to 0 pixels from the top 
linearLayoutManager.scrollToPositionWithOffset(pos, 0); 
+0

感谢哥哥它的工作。 –

+0

如果它有效,你可以将其标记为接受的答案!它可能会帮助其他人,谢谢 –

相关问题