日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android攻城狮ScrollView

發布時間:2024/1/8 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android攻城狮ScrollView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ScrollView 滾動視圖 滾動視圖是指當前擁有很多內容,屏幕顯示不完整時,需要通過滾動來顯示完整的視圖。 ----------------------------- ScrollBar分兩種: HorizontalScrollView: 水平滾動視圖 ScrollView: 垂直滾動視圖 ----------------------------- 隱藏滾動條有兩種方式: 一種是在標簽中設置: android:scrollbars="none" 另一種是在代碼中設置: setHorizontalScrollBarEnable(false); 隱藏橫向ScrollView setVerticalScrollBarEnable(false); 隱藏縱向ScrollView


switch (event.getAction()){case MotionEvent.ACTION_MOVE:/*** 1.getScrollY()----滾動條滑動的距離* 2.getMeasuredHeight()* 3.getHeight()*///頂部狀態if(scrollView.getScrollY()<=0){Log.i("Main","頂部");}//底部狀態//scrollView.getChild(0) 表示 scrollView的第一個子View,這里就是TextView。//TextView的總高度=屏幕的高度+滾動條的最大滑動距離//這里的條件是TextView的總高度<=屏幕的高度+滾動條的滑動距離,一旦達成條件,就說明滾動條已經達到最大距離,也就是到底了。if(scrollView.getChildAt(0).getMeasuredHeight()<=scrollView.getHeight()+scrollView.getScrollY()){Log.i("Main","滑動到底部");Log.i("Main","scrollView.getChildAt(0).getMeasuredHeight()="+scrollView.getChildAt(0).getMeasuredHeight()+" scrollView.getHeight()="+scrollView.getHeight()+ "scrollView.getScrollY()="+scrollView.getScrollY());textView.append(getResources().getString(R.string.content2));}break;


ScrollView的監聽器——setOnTouchLiatener的使用 應用案例:判斷 ScrollView 何時滑動到底部 類似于 ListView的下拉更新,但這里使用的是 TextView+ScrollView。 監聽事件中含有 onTouch()方法,和上一章的 Flipper的 onTouchEvent類似。 ----------------------------------- getScrollY()----滾動條滑動的距離 getMeasuredHeight() 視圖的真實高度(隱藏部分+顯示部分) getHeight() 視圖顯示部分的高度 -------------------------------------- 摘自評論區: <ScrollView>里邊只能有一個元素,如果使用多個元素,需要把元素都放在<LinearLayout>等布局標簽中,然后把布局標簽在放在<ScrollView>否則放多個元素會報錯。 -------------------------------------- 摘自評論區: 那個滾動到底部或頂部的判斷,放在MotionEvent.ACTION_MOVE不合適,那里會執行很多次操作;放在MotionEvent.ACTION_UP比較適合,手指松開再去執行。





scrollTo 和 scrollBy區別 scrollTo: 相對于滾動視圖的起始位置,去滾動相應的距離,所以只能滑動一次。 scrollBy: 相對于當前位置,去滾動相應的距離,每滾動一次就會更新當前位置,所以能不斷滾動。 scrollBy的源碼: public void scrollBy(int x,int y){scrollTo(mScrollX + x , mScrollY + y); } 其中,mScrollX 和 mScrollY 表示當前坐標。 ---------------------------------- 應用案例:控制ScrollView視圖的位置 實際案例:小說閱讀,想要回到上次看的地方,如果采取手勢滑動,要不停地滑,會比較麻煩,而現在采取按鈕的方式代替手勢滑動,可以直接定位到你上次瀏覽的地方,實現方法是記錄上一次退出的位置,下次瀏覽時使用 scrollTo 或者 scrollBy 去恢復到上次瀏覽到的位置。 ------------------------------------- 通過按鈕滑動視圖的步驟 1. 在 main.xml 中添加兩個 Button,分別表示向上和向下(這里是垂直的ScrollView)。 2. 在 MainActivity中初始化這兩個Button。令 MainActivity 實現接口 OnClickListener。 3. 對兩個按鈕設置監聽器。 4. 重寫 onClick(): (1)使用switch,通過view.getId()判斷是哪個按鈕點擊。 (2)使用 scrollTo(int x,int y) 或者 scrollBy(int x,int y)實現滑動。 1 // ScrollView嵌套TextView,實現滾動條 滾動效果 2 //實現監聽,對頂部和底部的判斷 3 //控制滾動條滾動的位置,向上滾動或者向下滾動指定距離 4 public class MainActivity extends Activity implements OnClickListener { 5 private TextView textView; 6 private ScrollView scrollView; 7 private Button up, down; 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.main); 13 up = (Button) findViewById(R.id.up); 14 down = (Button) findViewById(R.id.down); 15 up.setOnClickListener(this); 16 down.setOnClickListener(this); 17 textView = (TextView) findViewById(R.id.content); 18 textView.setText(getResources().getString(R.string.content)); 19 scrollView = (ScrollView) findViewById(R.id.scrollview1); 20 //實現監聽 21 scrollView.setOnTouchListener(new OnTouchListener() { 22 23 @Override 24 public boolean onTouch(View v, MotionEvent event) { 25 // TODO Auto-generated method stub 26 switch (event.getAction()) { 27 case MotionEvent.ACTION_UP: {break;} 28 case MotionEvent.ACTION_DOWN: {break;} 29 case MotionEvent.ACTION_MOVE: { 30 // 1.getScrollY()滾動條滑動的距離 31 // 2.getMeasureHeight() 總的長度 32 // 3.getHeight()一屏的內容高度 33 34 // 頂部狀態 35 if (scrollView.getScrollY() <= 0) { 36 Log.i("main", "滑動到頂部"); 37 } 38 // 底部狀態 39 // textview的總高度《=屏幕高度+滾動條的滾動距離 40 if (scrollView.getChildAt(0).getMeasuredHeight() <= scrollView 41 .getHeight() + scrollView.getScrollY()) { 42 Log.i("main", "滑動到底部咯"); 43 //繼續添加數據 44 textView.append(getResources().getString( 45 R.string.content)); 46 } 47 break; 48 } 49 50 } 51 return false; 52 } 53 }); 54 55 } 56 //控制滾動條滾動的位置 57 @Override 58 public void onClick(View v) { 59 // TODO Auto-generated method stub 60 switch (v.getId()) { 61 // scrollView.scrollTo 以滾動視圖起始位置計算 62 // scrollView.scrollBy 相對前一次位置滾動對應的距離 63 case R.id.up: { 64 scrollView.scrollTo(0, -30); 65 break; 66 } 67 case R.id.down: { 68 scrollView.scrollBy(0, 30); 69 break; 70 } 71 } 72 } 73 74 }

?

?



轉載于:https://www.cnblogs.com/my334420/p/6715556.html

總結

以上是生活随笔為你收集整理的Android攻城狮ScrollView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。