forked from organicmaps/organicmaps
Merge pull request #5518 from goblinr/MAPSME-167-ext-search-category-scrolling-behavior-fix
[android] fix search scrolling behavior
This commit is contained in:
commit
958af1de18
4 changed files with 8 additions and 33 deletions
|
@ -18,6 +18,7 @@
|
|||
android:elevation="@dimen/margin_half_plus"
|
||||
tools:targetApi="lollipop">
|
||||
<android.support.design.widget.CollapsingToolbarLayout
|
||||
android:id="@+id/collapsing_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_scrollFlags="scroll|enterAlways">
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
style="@style/MwmWidget.TextView.Search"
|
||||
android:layout_marginBottom="?actionBarSize"
|
||||
android:text="@string/clear_search"
|
||||
android:drawableLeft="@drawable/ic_cancel"/>
|
||||
|
|
|
@ -7,6 +7,7 @@ import android.os.Bundle;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.AppBarLayout;
|
||||
import android.support.design.widget.CollapsingToolbarLayout;
|
||||
import android.support.design.widget.TabLayout;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
|
@ -33,7 +34,6 @@ import com.mapswithme.maps.location.LocationListener;
|
|||
import com.mapswithme.maps.routing.RoutingController;
|
||||
import com.mapswithme.maps.widget.PlaceholderView;
|
||||
import com.mapswithme.maps.widget.SearchToolbarController;
|
||||
import com.mapswithme.util.Animations;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.Utils;
|
||||
import com.mapswithme.util.log.LoggerFactory;
|
||||
|
@ -51,8 +51,6 @@ public class SearchFragment extends BaseMwmFragment
|
|||
HotelsFilterHolder
|
||||
{
|
||||
public static final String PREFS_SHOW_ENABLE_LOGGING_SETTING = "ShowEnableLoggingSetting";
|
||||
private static final float NESTED_SCROLL_DELTA =
|
||||
-MwmApplication.get().getResources().getDimension(R.dimen.margin_half);
|
||||
|
||||
private long mLastQueryTimestamp;
|
||||
|
||||
|
@ -161,6 +159,7 @@ public class SearchFragment extends BaseMwmFragment
|
|||
private PlaceholderView mResultsPlaceholder;
|
||||
private RecyclerView mResults;
|
||||
private AppBarLayout mAppBarLayout;
|
||||
private CollapsingToolbarLayout mToolbarLayout;
|
||||
private View mFilterElevation;
|
||||
@Nullable
|
||||
private SearchFilterController mFilterController;
|
||||
|
@ -258,6 +257,10 @@ public class SearchFragment extends BaseMwmFragment
|
|||
{
|
||||
final boolean hasQuery = mToolbarController.hasQuery();
|
||||
UiUtils.showIf(hasQuery, mResultsFrame);
|
||||
AppBarLayout.LayoutParams lp = (AppBarLayout.LayoutParams) mToolbarLayout.getLayoutParams();
|
||||
lp.setScrollFlags(hasQuery ? AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS
|
||||
| AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL : 0);
|
||||
mToolbarLayout.setLayoutParams(lp);
|
||||
if (mFilterController != null)
|
||||
mFilterController.show(hasQuery && mSearchAdapter.getItemCount() != 0,
|
||||
mSearchAdapter.showPopulateButton());
|
||||
|
@ -295,6 +298,7 @@ public class SearchFragment extends BaseMwmFragment
|
|||
|
||||
ViewGroup root = (ViewGroup) view;
|
||||
mAppBarLayout = (AppBarLayout) root.findViewById(R.id.app_bar);
|
||||
mToolbarLayout = (CollapsingToolbarLayout) mAppBarLayout.findViewById(R.id.collapsing_toolbar);
|
||||
mTabFrame = root.findViewById(R.id.tab_frame);
|
||||
ViewPager pager = (ViewPager) mTabFrame.findViewById(R.id.pages);
|
||||
|
||||
|
@ -625,7 +629,6 @@ public class SearchFragment extends BaseMwmFragment
|
|||
if (mToolbarController.hasQuery())
|
||||
{
|
||||
mToolbarController.clear();
|
||||
Animations.nestedScrollAnimation(mResults, (int) NESTED_SCROLL_DELTA, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,8 +10,6 @@ import android.support.annotation.NonNull;
|
|||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.support.v4.view.NestedScrollingChild;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewPropertyAnimator;
|
||||
|
@ -207,32 +205,6 @@ public final class Animations
|
|||
animator.start();
|
||||
}
|
||||
|
||||
public static <T extends View & NestedScrollingChild> void nestedScrollAnimation(
|
||||
@NonNull final T view, final int deltaY, final int deltaX)
|
||||
{
|
||||
ViewCompat.startNestedScroll(view, ViewCompat.SCROLL_AXIS_VERTICAL);
|
||||
ValueAnimator animator = ValueAnimator.ofFloat(0.0f, 1.0f);
|
||||
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
|
||||
{
|
||||
@Override
|
||||
public void onAnimationUpdate(ValueAnimator animation)
|
||||
{
|
||||
ViewCompat.dispatchNestedPreScroll(view, deltaX, deltaY, null, null);
|
||||
ViewCompat.dispatchNestedScroll(view, 0, 0, 0, 0, null);
|
||||
}
|
||||
});
|
||||
animator.addListener(new UiUtils.SimpleAnimatorListener()
|
||||
{
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation)
|
||||
{
|
||||
ViewCompat.stopNestedScroll(view);
|
||||
}
|
||||
});
|
||||
animator.setDuration(DURATION_DEFAULT);
|
||||
animator.start();
|
||||
}
|
||||
|
||||
private static void setCardBackgroundColor(@NonNull View view)
|
||||
{
|
||||
Context context = view.getContext();
|
||||
|
|
Loading…
Add table
Reference in a new issue