آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

HorizontalScroll

122198  9 سال پیش  9 سال پیش
0 0

با عرض سلام خدمت دوستان

ممنون میشوم به سوالم جواب بدهیم

من در فایل xml در یک VerticalScrooll  یک HorizontalScrooll قرار داده ام می خواهم زمانی که از HorizontalScrooll  در اپلیکیشن استفاده میکنم دیگر VerticalScroll انجام نشود

0 0
هیچ کدام از دوستان جواب این سوال را نمی داند (9 سال پیش)
0 0
سلام ، من قبلا نیاز به استفاده از ScrollView داخل ScrollView داشتم و در این لینک به جواب رسیدم . شما هم میتونی از همین روش استفاده کنی . (9 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  9 سال پیش
+1 0

راه حلش خیلی سخت نیست. (البته راه های زیادی وجود داره و ممکنه راههایی ازین ساده تر هم پیدا کنید.)
اگر میخواید یک اسکرول ویو رو در یک ویو پیجر نمایش بدید، یکی کلاس کاستوم ویو پیجر به شکل زیر بسازید:

 /**
* Created by a.hajhosseini on 1/21/2015.
*/
public class ExtendedViewPager extends ViewPager {

public ExtendedViewPager(Context context) {
super(context);
}

public ExtendedViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
try {
if (v instanceof TouchImageView) {
//
// canScrollHorizontally is not supported for Api < 14. To get around this issue,
// ViewPager is extended and canScrollHorizontallyFroyo, a wrapper around
// canScrollHorizontally supporting Api >= 8, is called.
//
return ((TouchImageView) v).canScrollHorizontallyFroyo(-dx);

} else if (v instanceof HorizontalRecyclerView) {
//
// canScrollHorizontally is not supported for Api < 14. To get around this issue,
// ViewPager is extended and canScrollHorizontallyFroyo, a wrapper around
// canScrollHorizontally supporting Api >= 8, is called.
//
// return v.canScrollHorizontally(-dx);
return true;

} else {
try {
return super.canScroll(v, checkV, dx, x, y);
} catch (Exception e) {
e.printStackTrace();
return false;
}

}
}catch (Exception e){
e.printStackTrace();
return false;
}
}

در کد بالا من میگم اگر توی ویو پیجر HorizontalRecyclerView یا TouchImageView بود، اسکرول نشه.
حالا شما اگر میخواید اسکرول ویو داشته باشید، یک کاستوم اسکرول ویو با نام SmartScrollView بسازید و کدای زیر رو توش وارد کنید (باید از اسکرول ویو اکستندز بشه) و بعد یک کلاس کاستوم اسکرول ویو دیگه بسازید به نام HorizontalScrollView و در برنامه استفاده کنید. توی SmartScrollView فقط کافیه به جای TouchImageView بنویسید HorizontalScrollView. توجه داشته باشید که توی xml هاتون حتما باید از کلاس های کاستومتون استفاده کنید.


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