پنهان شدن اکشن بار هنگام هنگام اسکرول لیست ویو
دوستان خسته نباشین.میخواستم ببینم این قابلیتی که توی بعضی برنامه ها دیده میشه که با اسکرول شدن لیست ویو اکشن بار پنهان میشه و مجدد ظاهر میشود چی هست؟یه منبع قابل درک برای اون اگه هست لینک بدین ممنون میشم
از متد setOnScrollListener کلاس ListView میتونید استفاده کنید:
- شیء myActionBar رو به صورت فیلد در کلاس Activity تون معرفی کنید(چون میخوایم در متدی غیر از onCreate بهش refrence بزنیم)
- یه متغیر از نوع int به صورت فیلد بسازید(مثلا من نوشتم int firstVisibleItem )
//تکه کد زیر رو در متد onCreate کلاس Activity تون قرار بدید
ListView myListView = (ListView) findViewById(R.id.listView);
firstVisibleItem = myListView.getFirstVisiblePosition();//شماره اولین آیتم لیست ویو در بالای صفحه زمانیکه کاربر تازه وارد این صفحه شده و هنوز اسکرول نکرده رو میگیره
myListView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int scrollState) {
int currentVisibleItem;
if(scrollState == 1 || scrollState == 2){// مساوی 1 یا 2 بودن یعنی کاربر داره اسکرول میکنه و مساوی 0 بودن یعنی اسکرول متوقف شده
currentVisibleItem = absListView.getFirstVisiblePosition();//شماره اولین آیتم لیست ویو در بالای صفحه رو بعد اینکه کاربر اسکرول میکنه میگیره
if(currentVisibleItem > firstVisibleItem){//یعنی کاربر داره به سمت پایین لیست حرکت میکنه
if(actionBar!=null)
{
actionBar.hide();
}
firstVisibleItem = currentVisibleItem;
}
if(currentVisibleItem < firstVisibleItem){//یعنی کاربر داره به سمت بالای لیست حرکت میکنه
if(actionBar!=null)
{
actionBar.show();
}
firstVisibleItem = currentVisibleItem;
}
}
}
@Override
public void onScroll(AbsListView absListView, int i, int i1, int i2) {
}
});
برای استفاده از این قابلیت باید از toolbar و appbar layout بهره بگیرید، همینطور لایه ای که طراحی میکنید باید ویدجت مادرش Coordinatorlayout باشه، و لیستی که اسفاده میکنید باید NestedScroll رو ساپورت کنه ( مثل RecyclerView و NestedScrollView)، در این صورت appbarlayout یا toolbar نسبت به Scroll واکنش نشون میدن (این واکنش رو CoordinatorLayout مدیریت میکنه)، و بسته به حالتی که شما برای toolbar تعریف کردی میرن بالا و میان پایین، برای اطلاعات بیشتر لینک زیر رو بررسی کنید:
همینطور یادتون نره که کلید این رفتارها و انیمیشن ها دست CoordinatorLayout و Behavior هایی هست که براش تعریف میشه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .