当发生一定数量的滚动并且滚动结束时,我试图让 CollapsingToolbarLayout 展开/折叠。
我让它按预期工作,但我需要的是工具栏是可见的或隐藏的,而不是半的,所以基本上可以扩展或协作。
我试图在没有运气的情况下找到解决方案。
这是我现在的样子:
my_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:padding="0dp"
android:layout_margin="0dp"
android:id="@+id/myPager"/>
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="112dp"
android:minHeight="?attr/actionBarSize">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:titleEnabled="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/appToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
>
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
style="@style/AppTheme.TabLayout"
android:id="@+id/appTabs"
android:scrollbars="horizontal"
android:layout_gravity="bottom"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:tabMode="fixed"
app:tabGravity="fill"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
如果我使用onOffsetChanged,我的应用程序会冻结,这是因为每次滚动更改时都会发生这种情况吗?
我的活动.java
public class MyActivity extends AppCompatActivity {
private AppBarLayout appBarLayout;
private android.support.v7.app.ActionBar mToolbar;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
mToolbar = getSupportActionBar();
appBarLayout.setExpanded(true);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
if(verticalOffset == 0 || verticalOffset <= mToolbar.getHeight()) {
appBarLayout.setExpanded(false);
} else {
appBarLayout.setExpanded(true);
}
}
});
}
}