PDA

View Full Version : آموزش SlidingTabLayout Right To Left راست چین



mahdisaraei
جمعه 03 مهر 1394, 15:53 عصر
با سلام .
چند هفته هستش که شروع کردم به نوشتن برنامه و هر چی سوال می پرسم به جایی نرسیدم . ( جز 4 بار ) . حالا که جواب سوالم رو پیدا کردم برای شما هم میزارم . شاید به دردتون بخوره .

SlidingTabLayout به صورت پیش فرض چپ چین هستش و برای راست چین بودن فایل های دست کاری شده هستش . که من جواب نگرفتم و خدم تغییر دادم .

هرچی left رو به righ و هر چی right رو به left تبدیل کردم . همچین تغییرات زیر
private void scrollToTab(int tabIndex, int positionOffset) {
final int tabStripChildCount = mTabStrip.getChildCount();
if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) {
return;
}

View selectedChild = mTabStrip.getChildAt(tabIndex);
if (selectedChild != null) {
int targetScrollX = selectedChild.getRight() + positionOffset;

if (tabIndex > 0 || positionOffset > 0) {
// If we're not at the first child and are mid-scroll, make sure we obey the offset
targetScrollX += mTitleOffset;
DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
int width = metrics.widthPixels;
targetScrollX -= width;

}

scrollTo(targetScrollX, 0);
}
}

slr560
شنبه 04 مهر 1394, 00:22 صبح
از API 17 راست به چپ کردن لایوت ها به اندروید اومد . یعنی زیر این API ساپورت نمیشه برادر
خیلی راحته . فقط کافیه خط پایین رو به تک application توی مانیفست اضافه کنی
android:supportsRtl="true"
با این کار اگه گوشی طرف زبانش فارسی باشه به صورت خودکار همه چی راست چین میشه
در صورتی که حتما میخوای همه چی راست چین بشه باید خط کد زیر رو به mainActivity اضافه کنی (حتی اگه زیان انگلیسی باشه)
getWindow().getDecorView().setLayoutDirection(View .LAYOUT_DIRECTION_RTL);