編輯:關於Android編程
今天開發遇到一個需求就是ScrollView中嵌套一個ListView,同時需要實現滑動到底部自動加載更多,我們知道ListView滑動到底部簡單實現onScrollListener()監聽器即可,但是ScrollView中沒有這麼方便了,這個時候需要從寫ScrollView組件;
public class ScrollBottomScrollView extends ScrollView {
public ScrollBottomScrollView(Context context) {
super(context);
}
public ScrollBottomScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ScrollBottomScrollView(Context context, AttributeSet attrs,int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt){
Log.e("Range", computeVerticalScrollRange()+"");
if(t + getHeight() >= computeVerticalScrollRange()){
//滑動到底部,doSomething();
}
}
}
注意:
1.computeVeritcalScrollRange()方法是獲取ScrollView中子布局的實際高度(可能超過屏幕的高度)
2.t是代表ScrollView滑動停止之後距離屏幕頂部的距離,getHeight方法是獲取ScrollView的高度(不包括超出屏幕的高 度),這樣如果 滑動的距離在加上ScrollView的高度大於等於ScrollView中子布局的實際高度,說明ScrollView不能再 滑動了,就停 止了。
下面在看一下怎麼實現ScrollView自動滾動,並且滾動到底部停止了:
final int off = layout.getHeight() - scroll.getHeight();
scroll.post(new Runnable(){}});
layout是ScrollView的子布局(我們知道ScrollView中只能有一個子布局),變量off就是ScrollView能夠滑動的距離是多少。其實這裡的layout.getHeight()獲取到的值和上面的computeVeritcalScrollRange()方法返回的值一樣的,就是ScrollView子布局的實際高度(包括超出屏幕的高度),同時這裡的off其實就是ScrollView滑動停止之後的上面的t值,在這裡使用post方法,進行更新布局,同時這裡還有一個方法就是scroll.scrollBy()這個方法,這個方法顧名思義就是scroll滑動的位移值(第一參數是left,第二個參數是top),同時它還有一個方法就是scrollTo()方法,這個意思也很明確,就是scroll滑動到指定的位置,還有就是scroll.getScrollY()方法是scroll在Y坐標上滑動的距離(高度),這樣實現自動滾動的原理就明確了。
Android表情功能處理方案概述1.原理和實現思路2.表情圖片顯示3.表情面板4.表情的輸入框插入和刪除5.表情添加腳本Android中表情功能,一般都不是用Image
原理Android客戶端模擬一個HTTP的Post請求到服務器端,服務器端接收相應的Post請求後,返回響應信息給給客戶端。背景 網上很多上傳到java服務器上的,找了好
小米筆記本Air已經發布,在配置上有兩個版本,一款是13寸的高配版和12寸的輕薄款,具體的配置我們來看看。小米筆記本配置小米筆記本Air采用全金屬超輕薄設計
最近做項目,碰到如下的需求:ViewPager分頁,如果是6頁(包括6頁)就用圓點,如果是6頁以上就用進度條來切換。前面一種交互方法最常見,用小圓點來表示當前選中的頁面,