android滑動位置
⑴ android怎麼獲取scrollview滑動時與布局頂部的距離
直接使用 android.view.View.getScrollY() 就可以了 這個是獲得 當前 滑動位置 距離 scrollView 頂部的距離 類似的 listView 也有這個方法
⑵ android 編程 如何實現屏幕滑動
我這的代碼是不會給你的了,長不長的不說,主要是不讓給。
思路倒是可以告訴你,其實很簡單,就是響應屏幕觸點事件,判斷觸點區域,切換界面圖片。最簡單的實現:6張圖,分別是一張觸摸圖(就是你圖中那個黃邊的鎖),一張區域整體透明圖,四張上下左右響應變化整體圖,然後根據觸摸的位置切換圖片就行了。(其中還是有些小麻煩和小技巧,你自己試試就知道了,不難解決)
⑶ 怎麼判斷android中ScrollView滑動到了最底部
滾動到頂部判斷:
getScrollY() == 0
滾動到底部判斷:
View childView = getChildAt(0);
childView.getMeasuredHeight() <= getScrollY() + getHeight();
其中getChildAt表示得到ScrollView的child View
childView.getMeasuredHeight()表示得到子View的高度,
getScrollY()表示得到y軸的滾動距離,
getHeight()為scrollView的高度
getScrollY()達到最大時加上scrollView的高度就的就等於它內容的高度了.
判斷滑動位置的地方,可以有兩種方式:
1、實現OnTouchListener來監聽是否滑動到最底部
OnTouchListener onTouchListener=new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
if (childView != null && childView .getMeasuredHeight()< = getScrollY() + getHeight()) {
} else if (getScrollY() == 0) {
}
break;
}
return false;
}
}
2、重寫ScrollView的onScrollChanged的方法,在onScrollChanged函數中判斷
public class myScrollView extends ScrollView
{
public myScrollView(Context context)
{
super(context);
}
public myScrollView(Context context, AttributeSet attributeSet)
{
super(context,attributeSet);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
View view = (View)getChildAt(getChildCount()-1);
int d = view.getBottom();
d -= (getHeight()+getScrollY());
if(d==0)
{
//you are at the end of the list in scrollview
//do what you wanna do here
}
else
super.onScrollChanged(l,t,oldl,oldt);
}
}
⑷ 怎麼判斷android中ScrollView滑動到了最底部
滾動到頂部判斷:
getScrollY() == 0
滾動到底部判斷:
View childView = getChildAt(0);
childView.getMeasuredHeight() <= getScrollY() + getHeight();
其中getChildAt表示得到ScrollView的child View
childView.getMeasuredHeight()表示得到子View的高度,
getScrollY()表示得到y軸的滾動距離,
getHeight()為scrollView的高度
getScrollY()達到最大時加上scrollView的高度就的就等於它內容的高度了.
判斷滑動位置的地方,可以有兩種方式:
1、實現OnTouchListener來監聽是否滑動到最底部
OnTouchListener onTouchListener=new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
if (childView != null && childView .getMeasuredHeight()< = getScrollY() + getHeight()) {
} else if (getScrollY() == 0) {
}
break;
}
return false;
}
}
2、重寫ScrollView的onScrollChanged的方法,在onScrollChanged函數中判斷
public class myScrollView extends ScrollView
{
public myScrollView(Context context)
{
super(context);
}
public myScrollView(Context context, AttributeSet attributeSet)
{
super(context,attributeSet);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
View view = (View)getChildAt(getChildCount()-1);
int d = view.getBottom();
d -= (getHeight()+getScrollY());
if(d==0)
{
//you are at the end of the list in scrollview
//do what you wanna do here
}
else
super.onScrollChanged(l,t,oldl,oldt);
}
}
⑸ android 帶排序的recyleview怎麼滑動到指定的item
Question
最近在寫 SideBar 的時候遇到一個問題,當執行 Recyclerview 的 smoothScrollToPosition(position) 的時候,Recyclerview 看上去並沒有滾動到指定位置。
Analysis
當然,這並不是方法的bug,而是 smoothScrollToPosition(position) 的執行效果有三種情況,需要區分。
·目標position在第一個可見項之前 。
這種情況調用smoothScrollToPosition能夠平滑的滾動到指定位置,並且置頂。
·目標position在第一個可見項之後,最後一個可見項之前。
這種情況下,調用smoothScrollToPosition不會有任何效果···
·目標position在最後一個可見項之後。
這種情況調用smoothScrollToPosition會把目標項滑動到屏幕最下方···
⑹ Android 如何在進入有scrollView的頁面時滑動條置頂
scrollView.scrollTo(0,0);
Activity里初始化後添加該代碼讓滾動條滑動到頂部
下面的解決方式可能會更好:
進入頁面後,顯示位置下移,主要是因為焦點問題. 所以在它的上一層布局 加
android:focusableInTouchMode="true" 就能解決你所遇到的問題
或者加在根布局也可以
⑺ android為什麼不能在oncreate里改變scrollview的滑動位置
因為onCreate方法是用來初始化Activity的數據的。
⑻ android怎麼實現頁面的左右滑動
Android上有一個控制項叫做ViewPager,該控制項可以根據item的多少實現左右滑動的效果。
Android上還有一個東西叫做Fragment,這是一個依賴於Activity而又獨立的頁面。
綜合這兩個控制項的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,實現頁面左右滑動的效果。
⑼ 如何獲取Android RecyclerView滑動的距離
1、有兩種方法:
(1)可參照:
switch (action) {
case MotionEvent.ACTION_DOWN:
DownX = event.getX();//float DownX
DownY = event.getY();//float DownY
currentMS = System.currentTimeMillis();//long currentMS 獲取系統時間
break;
case MotionEvent.ACTION_MOVE:
float moveX = event.getX() - DownX;//X軸距離
float moveY = event.getY() - DownY;//y軸距離
long moveTime = System.currentTimeMillis() - currentMS搜索;//移動時間
break;
case MotionEvent.ACTION_UP:
break;}
(2)按照以下原理:
滑動其實只是不停的重繪圖像,造成滑動的效果。
滑動其實是處理手的觸屏事件,在你的View里有onTouch事件,裡面會MotionEvent對象,裡面保存當前手的位置坐標,你根據這個坐標計算手滑動的距離,一般是在收到ACTION_DOWN時保存按下的位置,然後ACTION_MOVE會不停的上報,計算得出滑動距離。
2、RecyclerView簡介:
RecyclerView是v7的一個新控制項。在v7.21+包中,是一個用來展示大量數據的組件,或者說,就是ListView的改善版本。RecyclerView本質上是以適配器為核心。緩存viewHolder,view包含在viewHolder內。自推出以來廣受Android程序愛好者的推崇,然而不得不說這個控制項存在著一個比較嚴重的問題,就是滑動的時候會有不可容忍的卡頓現象出現。
3、RecyclerView卡頓現象解決方法:
將耗時的操作放到recyclerview.setAdapter(adapter)之前運行,運行完後再將需要的參數傳入Adapter里,此處重寫一個adapter類繼承Adapter就可以了。解決後運行,滑動恢復了流暢。