بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تنظیم اسکرول ویو و لیست ویو

مدیریت گفتگو
mahdiFar77 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام

در صفحه 5 تا layout دارم و یک لیست ویو

میخام وقتی 3 تا از layout اسکرول شد دیگه اسکرول نشه و لیست ویویی که دارم اسکرول بشه

ممنون میشم راهنمایی کنید که چکار کنم یا تو اینترنت دنبال چی بگردم؟

 

نظرات

خواست خدایی 10 سال پیش
خیلی دوست دارم کمکت کنم ولی متاسفانه نفهمیدم منظورت چیه

پاسخ‌ها 3

mahdiFar77 10 سال پیش

میخام وقتی اسکرول میکنه تا نوع سرویس اسکرول بشه بعد شرح گروه و شرح منو باقی بمونه و زیرش یه لیست ویو هست و میخام اون اسکرول بشه .خیلی گشتم ولی نمیدونم دنبال چی بگردم .خیلی گیج شدم

نظرات

احمد 10 سال پیش
خب اون دو تای دیگه را از اسکرول خارج کن و توی یه لایه دیگه بزار
mahdiFar77 10 سال پیش
اگه اسکرول خارجش کنم دیگه بالا نمیره. و لیست ویوهم کلا اسکرول نمیشه
احمد 10 سال پیش
خب از چند تا اسکرول استفاده کن
mahdiFar77 10 سال پیش
ممنون از راهنماییتون ولی چیزی که میخام اینه:وقتی کاربر اسکرول میکنه 2 حالت داره که یا روی لیست ویو اسکرول میکنه یا یا روی لایه اصلی.میخام وقتی روی لایه اصلی اسکرول میکنه اسکرول بشه بره بالا تا شرح منو و گروه و اگر روی لیست ویو اسکرول کرد فقط لیست ویو اسکرول کنه که من پیشفرض لیست ویو رو طولش رو 400dp قرار دادم که تا همین حد اسکرول میکنه و آیتمهای دیگر رو اسکرول نمیکنه.
احمد 10 سال پیش
والا چون نگ زمینه یکی هست درست نمی فهمم کدام قسمت ها را میگی گیج میشم :-)
بهروز 10 سال پیش
من منظورتون دقیق فهمیدم ولی میشه اول بگی چرا حالا میخوای تا گزینه شروع سرویس اسکرول بشه؟.این حالت مدنظر شما با حالتی که فقط لیست ویو زیر اسکرول بشه چقدر مگه تفاوت داره؟اینکه اون پنج تا آیتم بالا فیت بشن.بعد لیست ویو اسکرول بشه چرا مدنظرتون نیست؟
خواست خدایی 10 سال پیش

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

نظرات

بهروز 10 سال پیش

همون طور که گفتم من دلیل اینکارت نمیدونم.اما با این حال روش زیر میتونی استفاده کنی

لایه اصلیت اسکرول ویو قرار بده. و سه تا لایه هم درونش .مثل شکل زیر

اما اگه اینکار رو کنی چند تا چیز باید قبلش رعایت کنی.

اولا لیست ویوت باید بتونه داخل 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 اسکرول  صورت بگیره .و بعدش متوقف میشه.

فقط بدون که لیست ویوت باید ارتفاعش به حدی کافی زیاد باشه که اسکرول صورت بگیره.!

در آخر من بازم دلیل این همه سختی رو نمیدونم که بخودت میدی)))

نظرات

mahdiFar77 10 سال پیش
سختی نیست دوست عزیزم فکر کنید کاربر در هر سفارش فقط یکبار با گزینه های نوع میز ،شماره میز و نوع سرویس کار داره پس یعنی باید وقتی اسکرول میکنه این سه تا اسکرول بشن ولی شرح گروه و شرح منو چون باهاشون مدام کار داره نباید اسکرول بشه و در زیرشون لیست ویو لیست سفارش هایی هست که داده و باید کامل نشون داده بشه.
mahdiFar77 10 سال پیش
راه حل بهتری دارین؟

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .