Added underscroll tracking within ForecastFragment for elevation control.

This commit is contained in:
Dan Galpin
2015-05-25 03:39:36 -07:00
parent 77a0325f66
commit e7357a9631
2 changed files with 23 additions and 4 deletions

View File

@@ -25,10 +25,13 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CoordinatorLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.view.ViewCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
@@ -219,6 +222,24 @@ public class ForecastFragment extends Fragment implements LoaderManager.LoaderCa
}
}
final AppBarLayout appbarView = (AppBarLayout)rootView.findViewById(R.id.appbar);
if (null != appbarView) {
ViewCompat.setElevation(appbarView, 0);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if (0 == mRecyclerView.computeVerticalScrollOffset()) {
appbarView.setElevation(0);
} else {
appbarView.setElevation(appbarView.getTargetElevation());
}
}
});
}
}
// If there's instance state, mine it for useful information.
// The end-goal here is that the user never knows that turning their device sideways
// does crazy lifecycle related things. It should feel like some stuff stretched out,

View File

@@ -30,7 +30,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="0dp">
app:elevation="@dimen/appbar_elevation">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
@@ -46,11 +46,9 @@
android:layout_gravity="center_horizontal"
android:contentDescription="@string/app_name"
android:scaleType="center"
android:src="@drawable/ic_logo"
app:layout_scrollFlags="scroll|enterAlways" />
android:src="@drawable/ic_logo"/>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView