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