在我的应用程序中,我在CollapsingToolBarLayout
内有一个AppBarLayout
,它包含一个平方的ImageView
。由于此图形元素将占用设备屏幕的大部分内容,因此我为AppBarLayout
设置了初始偏移量:
private void setAppBarOffset() {
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior();
int difference = mAppBarLayout.getTotalScrollRange() - getSupportActionBar().getHeight();
behavior.onNestedPreScroll(mCoordinatorLayout, mAppBarLayout, null, 0, (int) (difference * 0.51), new int[]{0, 0}, 0);
}
这很好,但让我们转到实际的问题。每当他进一步扩展AppBarLayout
并释放触摸时,如何使AppBarLayout
弹回该固定偏移量?这是CollapsingToolbarLayout
扩展的50%的一个捕捉点。
所产生的效果已通过this library进行了存档,但未使用我需要的<android.support.design.widget.AppBarLayout
android:id="@+id/app_layout_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/songCoverImage"
android:layout_width="match_parent"
android:layout_height="200dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
app:layout_collapseMode="pin"
app:elevation="16dp"
app:layout_scrollFlags="enterAlways|exitUntilCollapsed" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
。
CoordinatorLayout
上面的代码是我现在在父AppBarLayout.Behavior
中使用的代码。老实说,我找不到以类似的方式描述我的问题的东西。我看了一个覆盖const api_call= await fetch(`http://api.openweathermap.org/data/2.5/forecast?id=524901&APPID=${APIKEY}`);
的{{3}},但是它似乎在更新的支持库27上不起作用,甚至用较新的方法替换了不赞成使用的方法。
任何帮助将不胜感激。