2017-01-27 4 views
0

Я не уверен, что это трудно сделать с RecyclerView или нет, я думал, что есть простой способ сделать это, но у меня есть некоторые трудности. У меня есть RecyclerView в действии, и когда я перехожу к этой операции, я хочу, чтобы она переходила к элементу. Кажется, достаточно хорошо. Тем не менее, моя проблема в том, что, скажем, только 5 элементов подходят на экране за раз, и у нас есть 6 элементов, и мы прокручиваем до 5-го или 4-го пункта, просмотр ресайклера прокручивает небольшой бит, но он не выглядит он прокручивает 'к' элементу, так как он ограничен границами RecyclerView.Элемент прокрутки и позиции Android RecyclerView наверху

Есть ли способ сделать это, если я прокручу до 4-го или 5-го элемента в RecyclerView, он разместит его в верхней части представления, а область под последним элементом будет только цветом фона нормальный вид, и я могу просто прокручивать назад нормально? Надеюсь, я правильно объясню. Я не уверен, что это можно сделать легко, и я ошибся в настройке XML или настройке кода.

<merge xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:visibility="gone"> 

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <include 
      android:id="@+id/timelineSwitcherView" 
      layout="@layout/view_timeline_view_switcher"/> 

    <ViewAnimator 
      android:id="@+id/viewAnimator" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/timelineSwitcherView"> 

     <RelativeLayout 
       android:id="@+id/timeLineRelativeLayout" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:background="@color/lighterBlue"> 

      <android.support.v4.widget.SwipeRefreshLayout 
        android:id="@+id/timeLineSwipeRefreshLayout" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 

       <android.support.v7.widget.RecyclerView 
         android:id="@+id/timeLineRecyclerView" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"/> 

      </android.support.v4.widget.SwipeRefreshLayout> 

     </RelativeLayout> 

Оцените справку и рекомендации по этому вопросу.

ответ

1

Вы должны использовать

mRecyclerview.scrollTo(x,y); 
    mRecyclerview.scrollToPosition(); 

Или еще лучше:

mRecyclerview.smoothScrollBy(x , y);   
    mRecyclerview.smoothScrollToPosition(List item position); 

Так что вам нужно, чтобы получить позицию Y, или положение ребенка в списке.

+0

Единственное, что работает, это scrollToPosition. Это вызывает проблему, о которой я упоминал, где она не расположена наверху, поэтому она не выглядит так, как ее сфокусировано. ScrollTo, smoothScrollBy и smoothScrollToPosition вообще не прокручиваются для меня. Вот почему я думал, что у меня может быть неправильная настройка XML или какая-либо другая настройка отсутствует. – goodgamerguy

+0

Я попытался создать свой собственный менеджер LinearLayout и переопределить плавный материал прокрутки. Теперь теперь гладкие свитки, но он не заставляет элемент отображаться наверху, тем не менее, проблема с появлением его в центре – goodgamerguy

Смежные вопросы