nom*_*ngo 55 material-design android-5.0-lollipop android-toolbar
我正在使用appcompat/support-v7中引入的新工具栏小部件.我想隐藏/显示工具栏,具体取决于用户是否在页面上下滚动,就像在新的Google Playstore应用程序或NewsStand应用程序中一样.工具栏小部件中是否有内置的东西,或者我应该将它与FrameLayout和ObservableScrollView结合使用?
Kun*_*uno 77
据我所知,没有什么可以为你做的.但是,您可以查看Google IO源代码,尤其是BaseActivity.搜索"自动隐藏"或查看onMainContentScrolled
为了隐藏Toolbar你的可以做这样的事情:
toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start();
Run Code Online (Sandbox Code Playgroud)
如果您想再次显示它,请致电:
toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start();
Run Code Online (Sandbox Code Playgroud)
Phi*_*ppe 42
要隐藏工具栏,您可以执行以下操作:
getSupportActionBar().hide();
Run Code Online (Sandbox Code Playgroud)
所以你只需要一个滚动监听器并在用户滚动时隐藏工具栏!
And*_*rey 28
隐藏:
getSupportActionBar().hide();
Run Code Online (Sandbox Code Playgroud)
节目:
getSupportActionBar().show();
Run Code Online (Sandbox Code Playgroud)
Abd*_*man 16
答案很简单.只需OnScrollListener在监听器中实现并隐藏/显示工具栏即可.例如,如果您有listview/recyclerview/gridview,请按照示例进行操作.
在您的MainActivity Oncreate方法中,初始化工具栏.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
然后实施 OnScrollListener
public RecyclerView.OnScrollListener onScrollListener = new RecyclerView.OnScrollListener() {
boolean hideToolBar = false;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (hideToolBar) {
((ActionBarActivity)getActivity()).getSupportActionBar().hide();
} else {
((ActionBarActivity)getActivity()).getSupportActionBar().show();
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 20) {
hideToolBar = true;
} else if (dy < -5) {
hideToolBar = false;
}
}
};
Run Code Online (Sandbox Code Playgroud)
我得到了这个想法:https://stackoverflow.com/a/27063901/1079773
Android设计支持库可用于显示/隐藏工具栏.
看到这个. http://android-developers.blogspot.kr/2015/05/android-design-support-library.html
这里有详细的样品. http://inthecheesefactory.com/blog/android-design-support-library-codelab/en
| 归档时间: |
|
| 查看次数: |
101348 次 |
| 最近记录: |