Смещение прокрутки RecyclerView сбрасывается при программном добавлении несвязанного представления - PullRequest
0 голосов
/ 17 января 2019

Всякий раз, когда я добавляю TextView поверх RecyclerView, смещение горизонтальной прокрутки сбрасывается, чтобы начать.

У меня есть LinearLayout, который содержит два элемента - TextViewContainer и RecyclerView. После инициализации RecyclerView я обновляю смещение горизонтальной прокрутки на 100 пикселей следующим образом:

 recyclerView.scrollTo( 100, 0 ).

Затем, всякий раз, когда я добавляю TextView в TextViewContainer, смещение RecyclerView сбрасывается в начало по любой причине, даже если они никак не связаны.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/textViewContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" />

        <RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
     </LinearLayout>

Я добавляю TextView следующим образом:

    LinearLayout container = rootView.findViewById( 
    R.layout.textViewContainer );

    TextView textView = new TextView(container.getContext());
    textView.setLayoutParams(new 
    LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
    ViewGroup.LayoutParams.WRAP_CONTENT));
    textView.setGravity(Gravity.CENTER);
    textView.setTextSize( 20.5f );
    textView.setText("TEST" );
    container.removeAllViews();
    container.addView(textView);

Я ожидаю, что RecyclerView останется с горизонтальным смещением 100 пикселей и НЕ вернется к нулю, когда я добавлю выше TextView в отдельный контейнер.

textViewContainer не имеет отношения к RecyclerView, я не понимаю, почему он сбрасывается к началу, как только я добавляю TextView в контейнер представления текста.

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

Есть ли способ, которым я могу предотвратить это? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...