Android操作栏自动隐藏

时间:2015-05-12 12:43:50

标签: android android-actionbar

有一种简单的方法来自动隐藏Actionbar吗?与用户向下滚动时Google Chrome应用中的网址栏消失的方式类似,但在用户向上滚动时再次显示。

2 个答案:

答案 0 :(得分:1)

它的名称是“快速返回模式”您可以从此处找到此ux模式的一些有用的库: https://android-arsenal.com/tag/136

您可以从此处找到有关此模式的更多详细信息: https://plus.google.com/+RomanNurik/posts/1Sb549FvpJt

我可以发布一个带快速返回标头的Listview的qucik返回模式示例。您可以为ScrollView更改它

yourListView.setOnScrollListener(new AbsListView.OnScrollListener() {
         @SuppressLint("NewApi")
         @Override
         public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            int scrollOffset = 0;
            float transitionY;

            if (firstVisibleItem > 0) {
               scrollOffset += headerHeight;
               if (firstVisibleItem > 1) {
                  scrollOffset += (firstVisibleItem - 1) * cellHeight;
               }
            }

            if (yourListView.getChildCount() > 0) {
               scrollOffset += -yourListView.getChildAt(0).getTop();
               scrollOffset = -scrollOffset;
            }

            float scrollDelta = scrollOffset - prevOffset;
            float nextY = mQuickReturnView.getY() + scrollDelta;

            if (nextY < minRawY) {
               transitionY = minRawY;
            }
            else if (nextY > qReturnDelta) {
               transitionY = qReturnDelta;
            }
            else {
               transitionY = nextY;
            }

            mQuickReturnView.setY(transitionY);
            prevOffset = scrollOffset;
         }

         @Override
         public void onScrollStateChanged(AbsListView view, int scrollState) {
         }
      });

答案 1 :(得分:0)

您可以使用hide()方法,如:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

但它依赖于API版本,请点击此处:

http://developer.android.com/guide/topics/ui/actionbar.html