在视图上隐藏操作栏滚动

时间:2014-12-06 09:58:58

标签: android android-actionbar

我在任何地方搜索,但我还没有找到它。到目前为止,我发现的任何东西总是在滚动ListView,GridView或RecyclerView时隐藏Action Bar。我需要的是如何在滚动ViewGroup(使用ScrollView)时隐藏Action Bar?因为我无法真正将我的布局转换为这三个中的任何一个,并且ScrollView没有onScrollListener。

谢谢。

2 个答案:

答案 0 :(得分:0)

1.在您的班级中实施ViewTreeObserver.OnScrollChangedListener, 2.将此行写入onCreate" getWindow()。requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);" (不含引号) 3.现在获取隐藏动画的ActionBar高度如下 -

    final TypedArray mstyled = getTheme().obtainStyledAttributes(new int[]{android.R.attr.actionBarSize });
mActionBarHeight = styledAttributes.getDimension(0, 0);
mstyled.recycle();

4.获取行动吧。

mActionBar = getActionBar();

5.Intilize scrollview。

((ScrollView)findViewById(R.id.parent)).getViewTreeObserver().addOnScrollChangedListener(this);

6.覆盖onScrollChange并像这样模式化你的方法。

@Override
public void onScrollChanged() {
    float mfloat = ((ScrollView)findViewById(R.id.parent)).getScrollY();
    if (mfloat >= mActionBarHeight && mActionBar.isShowing()) {
        mActionBar.hide();
    } else if ( mfloat==0 && !mActionBar.isShowing()) {
        mActionBar.show();
    }
}

希望它有所帮助。

答案 1 :(得分:0)

使用

android.support.v4.widget.NestedScrollView 

而不是

Scrollview. 

效果很好