تنظیم اسکرول ویو و لیست ویو
با سلام
در صفحه 5 تا layout دارم و یک لیست ویو
میخام وقتی 3 تا از layout اسکرول شد دیگه اسکرول نشه و لیست ویویی که دارم اسکرول بشه
ممنون میشم راهنمایی کنید که چکار کنم یا تو اینترنت دنبال چی بگردم؟
میخام وقتی اسکرول میکنه تا نوع سرویس اسکرول بشه بعد شرح گروه و شرح منو باقی بمونه و زیرش یه لیست ویو هست و میخام اون اسکرول بشه .خیلی گشتم ولی نمیدونم دنبال چی بگردم .خیلی گیج شدم

دمت گرم رفیق چه چالشی واسه خودت درست کردی
یه کوچولو سخته
فک کنم باید position ها رو بخونی بر اساس اون تصمیم بگیری
یعنی مثلا میگی اگر فلان ایتم رسید به بالای صفحه این اسکرول اجرا بشه
من تا الان دیدم میشه آخرین آیتم صفحه رو خوند. ولی اولیش رو نخوندم
این لینکو یه نگاه بنداز -- لینک --
همون طور که گفتم من دلیل اینکارت نمیدونم.اما با این حال روش زیر میتونی استفاده کنی
لایه اصلیت اسکرول ویو قرار بده. و سه تا لایه هم درونش .مثل شکل زیر

اما اگه اینکار رو کنی چند تا چیز باید قبلش رعایت کنی.
اولا لیست ویوت باید بتونه داخل scrollView ، اسکرول کنه. واسه اینکار میتونی کد زیر استفاده کنی
my-list.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
v.onTouchEvent(event);
return false;
}
پس با کد بالا مشکل اسکرول لیست ویوت رفع میشه.
دومین مشکل : وقتی صفحه والد رو Scrollview میزاری.بچه هایی که درونش قرار میدی.کل صفحه رو نمیگیرن.
پس باید این قابلیت به اسکرول ویو خودت بدی.با کد زیر:
android:fillViewport="true"
حالا مشکل سوم اینه که .اسکرول تا ویو سوم (نوع سرویس) پیش بره.واسه اینکار چیزی که الان به ذهنم میرسه روش زیر هست: فرض کن لایه ای که میخوای تا اونجا اسکرول ادامه پیدا کنه نامش اینه layer3
private final void stopScroll(){
new Handler().post(new Runnable() {
@Override
public void run() {
my_scroll.scrollTo(0, layer3.getBottom());
}
});
}
متد بالا باعث میشه تا پایین لایه 3 اسکرول صورت بگیره .و بعدش متوقف میشه.
فقط بدون که لیست ویوت باید ارتفاعش به حدی کافی زیاد باشه که اسکرول صورت بگیره.!
در آخر من بازم دلیل این همه سختی رو نمیدونم که بخودت میدی)))
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .