HorizontalScroll
با عرض سلام خدمت دوستان
ممنون میشوم به سوالم جواب بدهیم
من در فایل xml در یک VerticalScrooll یک HorizontalScrooll قرار داده ام می خواهم زمانی که از HorizontalScrooll در اپلیکیشن استفاده میکنم دیگر VerticalScroll انجام نشود
راه حلش خیلی سخت نیست. (البته راه های زیادی وجود داره و ممکنه راههایی ازین ساده تر هم پیدا کنید.)
اگر میخواید یک اسکرول ویو رو در یک ویو پیجر نمایش بدید، یکی کلاس کاستوم ویو پیجر به شکل زیر بسازید:
/**
* 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 هاتون حتما باید از کلاس های کاستومتون استفاده کنید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .