Android通過滑動控制ListView的高度

來源:互聯網
上載者:User
首先上一下圖: 
上下滑動上圖紅框標註的部位時,改變listView的高度,
start
1、擷取ListView的LayoutParams:
LayoutParams params= listView.getLayoutParams();
2、為RelativeLayout設定手勢監聽:
mRlBus.setOnTouchListener(new View.OnTouchListener() {//mRlBus為紅框處外層布局
float y=0;//在此處定義一個y,接收Y座標
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
y=event.getY();//當手指按在RelativeLayout的某個地方時觸發,擷取當前縱座標.
break;
case MotionEvent.ACTION_MOVE:
float x= event.getY()-y;//在此定義一個x,意思為滑動的每一刻,當前時刻的縱座標減去最初剛按下手指的縱座標
if(x>0||params.height<=250){//如果手指是向下滑(x=0)或者ListView的高度小於250,
params.height= (int) (params.height-x); //則執行降低或者升高ListView的操作
if(params.height>250){//這個步驟的意思為:假設使用者很快速的往上滑,可能造成高度大於250
params.height=250;//如果過高,那麼固定為250
}
}
if(params.height<0){//這個步驟的意思為:假設使用者很快速的往下滑,可能造成高度小於0,造成ListView選取滑動之前的高度為當前高度
params.height=0;
}
listView.setLayoutParams(params);
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
如果幫到了觀眾們,點個贊吧~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.