项目中需要实现当界面滑动的时候,菜单栏背景从透明到不透明的变化,其实最简单的实现就是自定义一个ScrollView或者ListView控件,但是因为这个界面有用到PullToRefresh这个布局,并且是PullToRefreshList,所以只能在不改变ListView的情况下去实现,所以我这个情况算是特例吧。
首先界面设置是最上方是一个ViewPager,然后菜单栏是覆盖在这个ViewPager上方,并且透明,这样后面计算高度的时候要记得减去菜单栏本身的高度。
先写一个方法来判断当前ListView滑动到了哪里
/**
* 判断是否是第一行
* @return
*/
private boolean isScroll()
{
if(mListView.getFirstVisiblePosition() == 1 || mListView.getFirstVisiblePosition() == 0)
{
return true;
}
return false;
}
mListView.getFirstVisiblePosition()这个方法是得到当前行数,当行数为1的时候,那么肯定是在滑动ViewPager并且ViewPager没有消失,但是当一开始进入界面的时候,mListView.getFirstVisiblePosition()为0,所以判断条件为1或者0时。
再写一个方法来得到高度比例
/**
* 得到高度比例
* @return
*/