ScrollView(捲軸)
本節引言:
本節帶來的是Android基本UI控制項中的第十個:ScrollView(捲軸),或者我們應該叫他 垂直滾動條,對應的另一個水平方向上的滾動條:HorizontalScrollView,先來一發官方文檔 的連結:ScrollView,我們可以看到類別的結構如下:
#嘿嘿,原來是一個FrameLayout的容器,不過在他的基礎上添加了滾動,允許顯示的比實際多的內容!
另外,只能夠往裡面放置一個子元素,可以是單一的元件,又或者一個佈局包裹著的複雜的層次結構!
一般對於可能顯示不完的情況,我們可以直接在佈局的外層套上一個: ScrollView或者HorizontalScrollView!就這麼簡單~!
可能遇到的一些需求
好的,就不一個扣文檔了,直接說實際開發中可能會遇到的一些需求吧:
另外有一個很典型的問題就是:ScrollView和ListView的巢狀問題,這個放到ListView那一章 再來講解~
1.滾動到底部:
我們可以直接利用ScrollView給我們的:fullScroll()方法:
scrollView.fullScroll(ScrollView.FOCUS_DOWN);捲動到底部
scrollView.fullScroll(ScrollView.FOCUS_UP);捲動到頂部
另外用這玩意的時候要小心異步的玩意,就是addView後,有可能還沒顯示完, 如果這時候直接呼叫該方法的話,可能會無效,這就需要自己寫handler來更新了~
#程式碼範例:
##效果圖:
實作程式碼:
版面比較簡單,就不貼了,直接貼MainActivityMainActivity.java#
私有按鈕 btn_down;
私有按鈕 btn_up;
View;
@Override
public void onCreate(Bundle savedInstanceState) {
);
bindViews();
}
private void bindViews() {
btn_down = (Button) findView Id(R.id.btn_up);
scrollView = (ScrollView) findViewById(R.id.scrollView);
lickListener(this);
btn_up.setOnClickListener(this ) );
StringBuilder sb = new StringBuilder();
for (int i sb.append("呵呵* " + i + " \n");
}
txt_show.setText(sb.toString());
## switch (v.getId()) {
case R.id) DOWN);
break;
case # scrollView.fullScroll(ScrollView.FOCUS_UP);
break;
}
}
}
#public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Han p. void run() {if (offset < 0 ) {
offset = 0;
}
});
}
scrollTo
()參數依序為x,y滾到對應的x,y位置!
2.設定滾動的滑桿圖片
垂直方向滑桿:android:scrollbarThumbVertical
#水平
方向滑桿:android:scrollbarThumbHorizontal##3.隱藏滑桿
好吧,這個好像沒什麼卵用:方法有兩種: 1.android:scrollbars="none"2.Java程式碼設定:scrollview.setVerticalScrollBarEnabled(false);
4.設定滾動速度:
#這個並沒有提供我們可以直接設定的方法,我們需要自己繼承ScrollView,然後重寫一個 public void fling (int velocityY)的方法:@Override public void fling(int velocityY) { super.fling(velocityY / 2); //速度变为原来的一半 }本節小結:
好的,能想到的ScrollView的東西就這麼多,因為平常這個用得不多,一般直接套在外面而已, 另外,問題最多的一般是ScrollView和ListView的巢狀問題~如果有什麼補充歡迎提出,謝謝~#