Android 如何使工具栏在listview滚动时平滑隐藏/显示。安卓
我正在使用这段代码来显示/隐藏listview上的工具栏向下/向上滚动Android 如何使工具栏在listview滚动时平滑隐藏/显示。安卓,android,listview,Android,Listview,我正在使用这段代码来显示/隐藏listview上的工具栏向下/向上滚动 brandListView.setOnScrollListener(new AbsListView.OnScrollListener() { int mLastFirstVisibleItem = 0; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Overrid
brandListView.setOnScrollListener(new AbsListView.OnScrollListener() {
int mLastFirstVisibleItem = 0;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (view.getId() == brandListView.getId()) {
final int currentFirstVisibleItem = brandListView.getFirstVisiblePosition();
if (currentFirstVisibleItem > mLastFirstVisibleItem) {
// getSherlockActivity().getSupportActionBar().hide();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
} else if (currentFirstVisibleItem < mLastFirstVisibleItem) {
// getSherlockActivity().getSupportActionBar().show();
((AppCompatActivity)getActivity()).getSupportActionBar().show();
}
mLastFirstVisibleItem = currentFirstVisibleItem;
}
}
});
brandListView.setOnScrollListener(新的AbsListView.OnScrollListener(){
int mLastFirstVisibleItem=0;
@凌驾
公共无效onScrollStateChanged(AbsListView视图,int scrollState){
}
@凌驾
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount){
if(view.getId()==brandListView.getId()){
final int currentFirstVisibleItem=brandListView.getFirstVisiblePosition();
如果(currentFirstVisibleItem>mLastFirstVisibleItem){
//getSherlockActivity().getSupportActionBar().hide();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}else if(currentFirstVisibleItem
虽然它像预期的那样隐藏/显示listview,但转换一点也不平稳。这是一种非常突然的轻弹效果
有人能帮我吗?我怎样才能让它顺利进行。试试我的图书馆:
您必须在build.gradle中导入:
compile 'it.michelelacorte.retractabletoolbar:library:1.0.0'
比你的活动课:
RetractableToolbarUtil.ShowHideToolbarOnScrollingListener showHideToolbarListener;
recyclerView.addOnScrollListener(showHideToolbarListener = new RetractableToolbarUtil.ShowHideToolbarOnScrollingListener(toolbar));
if (savedInstanceState != null) {
showHideToolbarListener.onRestoreInstanceState((RetractableToolbarUtil.ShowHideToolbarOnScrollingListener.State) savedInstanceState
.getParcelable(RetractableToolbarUtil.ShowHideToolbarOnScrollingListener.SHOW_HIDE_TOOLBAR_LISTENER_STATE));
}
结果是:
编辑:
这仅适用于RecyclerView
,但我注意到您需要一个ListView
,然后您应该查看此文件:,
修改它以满足您的需要