Skip to content
Snippets Groups Projects
Commit 1edd7908 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixed several UI issues

parent 30600b3f
No related branches found
No related tags found
No related merge requests found
...@@ -88,6 +88,8 @@ public class ChatFragment extends BoundFragment { ...@@ -88,6 +88,8 @@ public class ChatFragment extends BoundFragment {
messageAdapter = new MessageAdapter(getActivity(), context, new AutoScroller(messages)); messageAdapter = new MessageAdapter(getActivity(), context, new AutoScroller(messages));
messages.setAdapter(messageAdapter); messages.setAdapter(messageAdapter);
scrollDown.hide();
listener = new RecyclerView.OnScrollListener() { listener = new RecyclerView.OnScrollListener() {
@Override @Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) { public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
...@@ -106,12 +108,19 @@ public class ChatFragment extends BoundFragment { ...@@ -106,12 +108,19 @@ public class ChatFragment extends BoundFragment {
int scrollOffsetFromBottom = recyclerView.computeVerticalScrollRange() - recyclerView.computeVerticalScrollOffset() - recyclerViewMeasuredHeight; int scrollOffsetFromBottom = recyclerView.computeVerticalScrollRange() - recyclerView.computeVerticalScrollOffset() - recyclerViewMeasuredHeight;
boolean isMoreThanOneScreenFromBottom = scrollOffsetFromBottom > recyclerViewMeasuredHeight; boolean isMoreThanOneScreenFromBottom = scrollOffsetFromBottom > recyclerViewMeasuredHeight;
boolean smartVisibility = scrollDown.getVisibility() == View.VISIBLE || isMoreThanOneScreenFromBottom; boolean smartVisibility = scrollDown.getVisibility() == View.VISIBLE || isMoreThanOneScreenFromBottom;
scrollDown.setVisibility((canScrollDown && isScrollingDown && smartVisibility) ? View.VISIBLE : View.GONE); setScrollDownVisibility(canScrollDown && isScrollingDown && smartVisibility);
}
private void setScrollDownVisibility(boolean visible) {
if (visible)
scrollDown.show();
else
scrollDown.hide();
} }
}; };
messages.addOnScrollListener(listener); messages.addOnScrollListener(listener);
scrollDown.setOnClickListener(view1 -> messages.scrollToPosition(0)); scrollDown.setOnClickListener(view1 -> messages.smoothScrollToPosition(0));
return view; return view;
} }
......
...@@ -26,20 +26,18 @@ import android.support.v7.widget.LinearLayoutManager; ...@@ -26,20 +26,18 @@ import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
public class AutoScroller { public class AutoScroller {
private final RecyclerView recyclerView;
private final LinearLayoutManager manager; private final LinearLayoutManager manager;
public AutoScroller(@NonNull RecyclerView recyclerView) { public AutoScroller(@NonNull RecyclerView recyclerView) {
this(recyclerView, (LinearLayoutManager) recyclerView.getLayoutManager()); this((LinearLayoutManager) recyclerView.getLayoutManager());
} }
public AutoScroller(RecyclerView recyclerView, LinearLayoutManager manager) { public AutoScroller(LinearLayoutManager manager) {
this.recyclerView = recyclerView;
this.manager = manager; this.manager = manager;
} }
public void notifyScroll() { public void notifyScroll() {
if (manager.findFirstVisibleItemPosition() == 0) if (manager.findFirstVisibleItemPosition() == 0)
manager.smoothScrollToPosition(recyclerView, null, 0); manager.scrollToPosition(0);
} }
} }
...@@ -53,7 +53,6 @@ ...@@ -53,7 +53,6 @@
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:layout_marginRight="12dp" android:layout_marginRight="12dp"
android:tint="@color/colorFillDark" android:tint="@color/colorFillDark"
android:visibility="gone"
app:backgroundTint="#8A808080" app:backgroundTint="#8A808080"
app:elevation="0dip" app:elevation="0dip"
app:fabSize="mini" app:fabSize="mini"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment