用户滚动ScrollView时隐藏/显示工具栏

时间:2015-04-26 20:55:55

标签: android android-layout android-animation android-scrollview android-toolbar

我的布局中有工具栏和ScrollView。我想在用户滚动ScrollView时隐藏/显示工具栏。之前在stackoverflow中有相同的问题,但我找不到正确的答案。这是我使用的代码。不幸的是,它仅适用于ActionBar。是否使用工具栏是因为现在我在isShowing,hide,show methods中有错误?

感谢您的帮助!

public class MainActivity extends ActionBarActivity implements ViewTreeObserver.OnScrollChangedListener{

    private float mToolbarBarHeight;
    Toolbar mToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        mToolbar = (Toolbar) findViewById(R.id.application_toolbar);
        setSupportActionBar(mToolbar);

        //hiding the toolbar
        final TypedArray mTypedArray = getTheme().obtainStyledAttributes(new int[] { android.R.attr.actionBarSize });
        mToolbarBarHeight = mTypedArray.getDimension(0, 0);
        mTypedArray.recycle();
        ((ScrollView)findViewById(R.id.mScrollView)).getViewTreeObserver().addOnScrollChangedListener(this);
    }

    ****

    @Override
    public void onScrollChanged() {
        float y = ((ScrollView)findViewById(R.id.mScrollView)).getScrollY();
        if (y >= mToolbarBarHeight && mToolbar.isShowing()) {
            mToolbar.hide();
        } else if ( y==0 && !mToolbar.isShowing()) {
            mToolbar.show();
        }
    }
}

0 个答案:

没有答案