Android: вид Recycler не прокручивается до последней позиции - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь создать экран чата, используя вид Recycler.Из-за чата, когда пользователь входит в экран, список должен прокручиваться до последней позиции.

Моя проблема в том, что при открытии клавиатуры список скрывается .Если мы используем настройку панорамирования, весь вид идет вверх, я пытаюсь прокрутить только список, я хочу, чтобы строка заголовка оставалась в том же положении при открытой клавиатуре

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Добавьте это в свой код и проверьте .... У меня все работает нормально ...

mRecyclerView.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 (mRecyclerAdapter != null) 
        {
            if (bottom < oldBottom) 
            {
                mRecyclerView.smoothScrollToPosition(mRecyclerAdapter.getItemCount() - 1);
            }
        }
    }
});

Добавьте эту строку, когда вы получите новое сообщение ....

mRecyclerView.smoothScrollToPosition(mRecyclerAdapter.getItemCount() - 1);
0 голосов
/ 28 декабря 2018

Не нужно добавлять android: windowSoftInputMode в манифест.Просто держите свой вид переработчика над видом снизу.Надеюсь, это будет полезно.

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
            </RelativeLayout>
             <RelativeLayout
                android:id="@+id/rlBottom"
                android:layout_width="match_parent"
                android:layout_height="46dp"
                android:layout_gravity="bottom"
                android:layout_margin="@dimen/dimen_8"
                android:background="@drawable/shape_write_msg"
                android:elevation="@dimen/dimen_2">

                <EditText
                    android:id="@+id/etMessage"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginEnd="@dimen/dimen_12"
                    android:layout_marginStart="@dimen/dimen_12"
                    android:layout_toEndOf="@+id/ivAdd"
                    android:layout_toStartOf="@+id/ivSend"
                    android:background="@color/white"
                    android:focusable="true"
                    android:hint="@string/label_type_here"
                    android:inputType="textCapSentences"
                    android:textColor="@color/black"
                    android:textCursorDrawable="@null"
                    android:textSize="@dimen/sp_12"
                    android:visibility="visible" />


                <ImageView
                    android:id="@+id/ivSend"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_centerVertical="true"
                    android:layout_marginEnd="@dimen/dimen_4"
                    android:padding="@dimen/dimen_8"
                    android:src="@drawable/drawable_send"
                    android:visibility="visible" />
            </RelativeLayout>
        </android.support.v7.widget.CardView>
    </RelativeLayout>
</android.support.design.widget.CoordinatorLayout>

`

0 голосов
/ 28 декабря 2018

Добавьте этот атрибут в тег активности в манифесте.

<activity
...
android:windowSoftInputMode="stateVisible|adjustResize|adjustPan"
...
</activity>
...