Я прошел через несколько решений по переполнению стека, но не смог достичь желаемого результата. У меня есть обзор переработчика для базы комментариев. Представление переработчика пожарной базы существует в представлении прокрутки, так же как и прокрутка некоторой другой части макета, также как и в обычном представлении переработчика пожарной базы. Я установил RecyclerView.setNestedScrollingEnabled(false)
, поэтому прокрутка может плавно прокручиваться. сейчас я могу успешно прокрутить макет, но моя проблема возникает только тогда, когда я вхожу в активность, макет показывается сверху, что-то, что я не хочу. Я хочу, чтобы представление переработчика пожарной базы или представление прокрутки отображалось из последнего элемента, который находится внизу. Также я хочу, чтобы RecyclerView
автоматически прокручивал до последней позиции элемента всякий раз, когда пользователь вводит новый комментарий
Любая помощь будет оценена спасибо
Ниже мой код
код внутри существующего кода для инициализации
replyInDetailCommentsRecyclerView = findViewById(R.id.replyInDetailCommentsRecyclerView);
linearLayoutManager1 = new LinearLayoutManager(this);
replyInDetailCommentsRecyclerView.setLayoutManager(linearLayoutManager1);
replyInDetailCommentsRecyclerView.setNestedScrollingEnabled(false);
Код в обзоре Firebase, я только добавил соответствующую часть к проблеме. надеюсь, это поможет
adapter1.startListening();
adapter1.notifyDataSetChanged();
adapter1.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
super.onItemRangeInserted(positionStart, itemCount);
int friendlyMessageCount = adapter1.getItemCount();
int lastVisiblePosition =
linearLayoutManager1.findLastCompletelyVisibleItemPosition();
if (lastVisiblePosition == -1 ||
(positionStart >= (friendlyMessageCount - 1) &&
lastVisiblePosition == (positionStart - 1))) {
linearLayoutManager1.scrollToPosition(positionStart);
} else {
replyInDetailCommentsRecyclerView.scrollToPosition(adapter1.getItemCount() - 1);
}
}
});
replyInDetailCommentsRecyclerView.setAdapter(adapter1);
adapter1.notifyDataSetChanged();
Мой код XML
<ScrollView
android:layout_below="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:fillViewport="true"
android:fitsSystemWindows="true"
android:layout_marginBottom="50dp"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/RelativeLayout5"
android:layout_width="match_parent"
android:layout_below="@id/RelativeLayout1"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/RelativeLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/RelativeLayout4">
<android.support.v7.widget.RecyclerView
android:id="@+id/replyInDetailCommentsRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</RelativeLayout>
<RelativeLayout
android:id="@+id/RelativeLayout4"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageInDetailComments"
android:layout_width="30dp"
android:src="@drawable/profile"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_height="30dp"/>
<android.support.v7.widget.AppCompatTextView
android:id="@+id/nameInDetailComments"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textStyle="bold"
android:layout_alignTop="@+id/imageInDetailComments"
tools:text="Saqib"
android:layout_toRightOf="@+id/imageInDetailComments"
android:layout_marginLeft="5dp"
android:textColor="#096697"
android:layout_toEndOf="@+id/imageInDetailComments"
android:layout_marginStart="5dp" />
<android.support.v7.widget.AppCompatRatingBar
android:id="@+id/ratingInDetailComments"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:max="5"
android:numStars="5"
android:progressBackgroundTint="@color/colorAccent"
android:progressTint="@color/colorAccent"
android:rating="0.0"
android:secondaryProgressTint="@color/colorAccent"
android:stepSize="0.0"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imageInDetailComments"
android:layout_marginLeft="5dp"
android:layout_below="@+id/nameInDetailComments"
android:layout_marginStart="5dp"
android:layout_toEndOf="@+id/imageInDetailComments" />
<android.support.v7.widget.AppCompatTextView
android:id="@+id/userCommentInDetailComments"
android:layout_width="0dp"
android:layout_below="@+id/ratingInDetailComments"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/imageInDetailComments"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginLeft="5dp"
android:background="#efeeee"
android:padding="5dp"
android:text="i can do it mate, my bidding price includes gotaskie fee"
/>
<View
android:layout_below="@+id/userCommentInDetailComments"
android:layout_marginTop="8dp"
android:id="@+id/lineAboveCommentsRecyclerView"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#dad8d8"
/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>