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

راست چین کردن slidigTabLayout (حل شد)

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

سلام من این تب رو دارم اما میخوام راست چینش کنم و مثل تب بازار از راست شروع بشه.چجوریه.از کد های gravity و layout-gravity در xml هم استفاده کردم اما کارساز نبود

مشکل حل شد با این کد در کلاس SlidingTabLayout.در واقع اومدم یک خط اضافه کردم

 public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);

// Disable the Scroll Bar
setHorizontalScrollBarEnabled(false);
// Make sure that the Tab Strips fills this View
setFillViewport(true);

mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources().getDisplayMetrics().density);

mTabStrip = new SlidingTabStrip(context);
//right side tab*********************
mTabStrip.setGravity(Gravity.RIGHT);
//***********************************
addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

}

نظرات

omidronaldoo 11 سال پیش
ببخشید که عکس اینجوریه.نمیدونم چجوری عکس رو rotate کنم.به هر حال اگه کسی جوابو میدونه لطفا کمک کنه
کاشی زاده 11 سال پیش
آموزش پیاده سازی این تب ها در لینک قرار داره فک میکنم بعد از اینکه آموزش رو مطالعه کنید خودتون بتونید به راحتی با تغییر در سورسش تغییرات دلخواهتون رو اعمال کنید .
کاشی زاده 11 سال پیش
آموزش مربوط به بخش طراحی گوگل پلی فک میکنم بخش 3 هستش.
omidronaldoo 11 سال پیش
از روی همین آموزش های شما طراحیش کردم.اما میخوام راست چین باشه هر جا گشتم نبود.2 ساعته وقتمو گرفته
omidronaldoo 11 سال پیش
آقای کاشی زاده لطفا اگه میتونید کمک کنید
کاشی زاده 11 سال پیش
الان دسترسی به سورسش ندارم ، ولی تا جایی که میدونم شما باید لایه scrollView که توش آیتم ها قرار گرفته رو راست چین کنید و بگید بچه هاش همه از راست چیده بشن

پاسخ‌ها 3

کاشی زاده 11 سال پیش

این روش رو هم تست کنید :

 private void rtl(HorizontalScrollView hscv){
hscv.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
LinearLayout lay=(LinearLayout) hscv.findViewById(R.id.lyt_scrollView);
if(lay!=null){
lay.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
lay.invalidate();
}
}

 

نظرات

omidronaldoo 11 سال پیش
اینو تو کدوم قسمت قرار بدم
omidronaldoo 11 سال پیش
اینو تو کدوم قسمت قرار بدم
کاشی زاده 11 سال پیش
اینو ببرید تو سورس slidingTab و داخل یه متد مثل initializer قرار بدید ، اگر در کلاس HorizontalScrollView هستید لزومی به نوشتن hscv نیست و مستقیم میشه استفاده کرد .
omidronaldoo 11 سال پیش
این کده برای api بالای 17.کد دیگه ای ندارین
کاشی زاده 11 سال پیش
باید برید داخل همون scrollView و برای linear که توش هست بگید که gravity براش right باشه
omidronaldoo 11 سال پیش

این کدا هم هست که اضافه کردم واسه این که وقتی برنامه شروع میشه کدوم فرگمنت اول باشه.اون کدی که منظورمه رو بالاش کامنت کردم بقیش ترتیب سایر کداست

 ViewPager viewPager=(ViewPager)findViewById(R.id.viewpager);
fragmentPagerAdapter fragmentAdapter=new fragmentPagerAdapter(getSupportFragmentManager());



viewPager.setAdapter(fragmentAdapter);
float_button.example.com.float_button.SlidingTabLayout mSlidingTabLayout =
(float_button.example.com.float_button.SlidingTabLayout) findViewById(R.id.sliding_tabs);
//first tab*********************
viewPager.setCurrentItem(2);
//***********************************

mSlidingTabLayout.setDividerColors(0);
mSlidingTabLayout.setViewPager(viewPager);

نظرات

omidronaldoo 11 سال پیش
پیداش کردم نمیخواد دنبالش بری
SaeiD-as 11 سال پیش
ببخشید مشکلتون چطوری حل شد؟
omidronaldoo 11 سال پیش

این هم کدایه FragmentPagerAdapter .به قسمت آیدی دادنذقت کنید.اولین تب سمت راست آیدیش 2 آخریش صفر

 package float_button.example.com.float_button;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

/**
* Created by shadow on 7/11/2015.
*/
public class fragmentPagerAdapter extends FragmentPagerAdapter {
public fragmentPagerAdapter(FragmentManager fm) {
super(fm);
}

public CharSequence getPageTitle (int position){
switch(position){
case 2:
return "یک";
case 1:
return "دو";
case 0:
return "سه";
default:
return "دو";



}
}

@Override
public Fragment getItem(int position) {
switch (position){
case 2:
return new fragment1();
case 1:
return new fragment2();
case 0:
return new fragment3();
default:
return new fragment2();


}
}

@Override
public int getCount() {
return 3;
}
}

نظرات


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