如何解决回收站视图向下滚动时可见布局中的屏幕闪烁以及回收站视图向上滚动时已消失的布局。部分代码如下:
activity_main.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="?attr/actionBarSize"
android:focusableInTouchMode="true">
<LinearLayout
android:id="@+id/ll_filter_and_sort"
android:layout_width="match_parent"
android:layout_height="50dp"
android:weightSum="2"
android:background="@color/white"
android:focusableInTouchMode="false">
<RelativeLayout
android:id="@+id/rl_filter"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/ic_filter_list" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv_filter"
android:text="FILTER"
android:textSize="12sp"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_centerVertical="true" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_sort"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight="1">
<ImageView
android:id="@+id/iv_sort_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:src="@drawable/ic_sort"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv_sort_icon"
android:layout_toEndOf="@id/iv_sort_icon"
android:text="SORT"
android:textSize="12sp"
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_centerVertical="true" />
</RelativeLayout>
</LinearLayout>
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/listing_swipe_refresh"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/listing_recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
activity_main.xml包含两部分,上半部分是过滤器和排序布局,下半部分是所需数据的回收者视图。主要目的是如果回收站视图甚至向上滚动,文件管理器和排序布局必须消失,回收站视图甚至向下滚动,过滤器和排序布局必须再次可见。 对于此操作侦听器,部分代码如下:
MainActivity.java
private class ScrollListener extends RecyclerView.OnScrollListener {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
verticalPosition = dy;
if(dy > 0){
llFilterAndSort.setVisibility(View.GONE);
}
else {
llFilterAndSort.setVisibility(View.VISIBLE);
}
}
}
在上下滚动事件中,它们使用各种垂直滚动dy值触发。因此,每当值更改时,就会发生GONE和VISIBLE。 这就是屏幕闪烁的原因。所以,我想知道如何解决这个问题。请支持我。