如何在旧 API 上使用 Actionbar.setHideOnContentScrollEnabled

how to use Actionbar.setHideOnContentScrollEnabled on older APIs

我用过这个xml:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:nestedScrollingEnabled="true">
     ...
     ...

</ScrollView>

在activity中:

ActionBar myActionBar;
myActionBar = getSupportActionBar();
myActionBar.setHideOnContentScrollEnabled(true);

它在 android 5 上有效,我想在较旧的 APIs 上使用它,但 nestedScrollingEnabled 仅在 API 21 上受支持。 我确定这应该适用于较旧的 APIs ,因为大多数 google 应用程序都使用此功能。

有什么想法吗?

nestedScrollingEnabled 用于允许子视图在父视图中滚动。

取决于您 ScrollView 中是否有更多滚动子项,因此需要 nestedScrollingEnabled

如果您只有一个 ScrollView,隐藏 ActionBar 应该在滚动回调中根据收集的数量 dy 完成。这基本上就是 setHideOnContentScrolled() 所做的。您可以在 Y 轴上 offset/translate 您的 Toolbar (如果您将工具栏用作操作栏)一定数量,或者只需在操作栏上调用 .hide() 。这应该适用于所有版本。