程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#基本常識之new症結字引見

C#基本常識之new症結字引見

編輯:C#入門知識

C#基本常識之new症結字引見。本站提示廣大學習愛好者:(C#基本常識之new症結字引見)文章只能為提供參考,不一定能成為您想要的結果。以下是C#基本常識之new症結字引見正文


媒介

盡人皆知ScrollView是我們常常應用的一個UI控件,或許你在應用ScrollView的進程中會發明,當你想監聽ScrollView滑動的間隔時卻沒有適合的監聽器!固然在API 23中有setOnScrollChangeListener(View.OnScrollChangeListener l)可使用,然則其實不兼容低版本的API。那怎樣辦呢?只好重寫ScrollView來完成對滑動間隔的監聽了。

話不多說,直接上代碼:

public class MyScrollView extends ScrollView {

 private OnScrollListener listener;

 /**
 * 設置滑動間隔監聽器
 */
 public void setOnScrollListener(OnScrollListener listener) {
  this.listener = listener;
 }

 public MyScrollView(Context context) {
  super(context);
 }

 public MyScrollView(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

 public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
  super(context, attrs, defStyleAttr);
 }

 // 滑動間隔監聽器
 public interface OnScrollListener{

 /**
 * 在滑動的時刻挪用,scrollY為已滑動的間隔
 */
  void onScroll(int scrollY);
 }

 @Override
 public void computeScroll() {
  super.computeScroll();
  if(listener!=null){
   listener.onScroll(getScrollY());
  }
 }
}

下面重寫的MyScrollView是在computeScroll()完成監聽,由於ScrollView外部是經由過程Scroller來完成的,當滑動的時刻會去挪用computeScroll()辦法,從而到達監聽的後果。

固然還有另外一種辦法,就是在onScrollChanged(int l, int t, int oldl, int oldt)去監聽,最初的後果是一樣的:

public class MyScrollView extends ScrollView {

 private OnScrollListener listener;

 public void setOnScrollListener(OnScrollListener listener) {
  this.listener = listener;
 }

 public MyScrollView(Context context) {
  super(context);
 }

 public MyScrollView(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

 public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
  super(context, attrs, defStyleAttr);
 }

 public interface OnScrollListener{
  void onScroll(int scrollY);
 }

  @Override 
 protected void onScrollChanged(int l, int t, int oldl, int oldt) { 
  super.onScrollChanged(l, t, oldl, oldt); 
  if(listener != null){ 
   listener.onScroll(t); 
  } 
 } 
}

總結

以上就是這篇文章的全體內容了,願望能對列位Android開辟者們有所贊助,假如有疑問年夜家可以留言交換。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved