2017-01-27 2 views
0

Ich bin mir nicht sicher, ob dies mit einem RecyclerView schwer zu tun ist oder nicht, ich dachte, es gab einen einfachen Weg, aber ich habe einige Schwierigkeiten. Ich habe eine RecyclerView für eine Aktivität, und wenn ich zu der Aktivität gehe, möchte ich, dass sie zu einem Element blättert. Scheint gut genug. Mein Problem ist jedoch, dass, sagen wir, nur 5 Elemente gleichzeitig auf den Bildschirm passen, und wir haben 6 Elemente, und wir scrollen zum 5. oder 4. Element, die Recycleransicht scrollt ein kleines bisschen, aber es sieht nicht so aus Es scrollt "zu" dem Element, da es durch die RecyclerView-Grenzen begrenzt ist.Android RecyclerView Scrollen und Position Artikel oben

Gibt es eine Möglichkeit, es so zu machen, wenn ich bis zum vierten oder fünften Element in der RecyclerView blättern, wird es am oberen Rand der Ansicht positioniert, und der Bereich unter dem letzten Element wird nur die Hintergrundfarbe sein die normale Ansicht, und ich kann einfach normal zurück scrollen? Ich hoffe ich erkläre mich richtig. Ich bin nicht sicher, ob dies leicht gemacht werden kann, und ich habe einen Fehler im XML-Setup oder Code-Setup gemacht.

<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> 

Schätzen Sie jede Hilfe und Anleitung mit diesem.

Antwort

1

sollten Sie

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

verwenden Oder noch besser:

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

So müssen Sie die Y-Position zu bekommen, oder das Kind Position in der Liste.

+0

Die einzige Sache, die funktioniert, ist scrollToPosition. Das verursacht das Problem, das ich erwähnt habe, wo es nicht an der Spitze positioniert ist, so sieht es nicht wirklich wie es fokussiert aus. ScrollTo, smoothScrollBy und smoothScrollToPosition scrollen überhaupt nicht nach mir. Deshalb habe ich gedacht, ich könnte XML-Setup falsch oder eine andere Einstellung fehlen – goodgamerguy

+0

Ich habe versucht, meine eigenen LinearLayout-Manager erstellen und überschreiben die reibungslosen Scroll-Zeug. Es scrollt jetzt glatt, aber es lässt das Element nicht oben erscheinen, immer noch das gleiche Problem, dass es außerhalb der Mitte erscheint – goodgamerguy

Verwandte Themen