使用 AppBarLayout 和 Toolbar 的最基本示例,当尝试滚动更多时,我看不到过度滚动动画(从底部或顶部发光)。但是,如果您投掷内容,它将显示它。
这是代码(nav_drawer_toolbar_layout.xml):
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Replace fragments in this content frame, like a RecycleView -->
<FrameLayout
android:id="@+id/content_frame"
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:minHeight="?attr/actionBarSize"
app:titleTextAppearance="@style/Base.TextAppearance.AppCompat.Title"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
其次是简单的Activity类:
public class MyActivity extends AppCompatActivity implements {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nav_drawer_toolbar_layout);
// Setup the toolbar/actionbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FragmentManager manager = getFragmentManager();
manager.beginTransaction().replace(R.id.content_frame, new MyFragmentList).commit();
}
}
MyFragmentList 是一个带有 RecycleView 的片段,其中包含滚动应用程序的内容。
但是,如果我从 xml 中删除 AppBarLayout 并使工具栏保持打开状态(只需注释 AppBarLayout 打开和关闭),它会在滚动时显示过度滚动动画(发光)。
或者,如果您删除layout_scrollFlags="scroll"
,则过度滚动有效,但滚动时无法隐藏操作栏。
有关更多信息,请调试 RecycleView,第 2272 行
if(this.mBottomGlow != null && !this.mBottomGlow.isFinished()) {
包含 AppBarLayout 时始终完成,不存在时未完成。是否有东西覆盖了它的触摸事件?
有谁知道谁用 AppBarLayout 显示过度滚动动画(发光)?