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

( سوال تغییر کرد ) تب بار اکستنز از اکشن بار اکتیویتی(حل شد)

atf  11 سال پیش  11 سال پیش
0 0

سلام 

می خوام از تولبار در اکتیویتی که تب بار داره استفاده کنم اما می گه که باید از تب اکتیویتی اکستنر کنی 

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

چجوری میتونم در این صورت از تولبار استفاده کنم 

ممنون از راهنمایی هاتون

0 0
اکشن بار دست ساز همین مشکل ها رو داره برای همین از لایبرری استفاده میکنند. به این لینک هم یه نگاهی بکن. (11 سال پیش)
0 0
دیدم این لینک رو ولی این دست ساز نیست همون اکشن باری که هر برنامه ی جدیدی که میسازی توش وجود داره (11 سال پیش)
0 0
سوال تغییر کرد (11 سال پیش)
0 0
. (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
CodeMaster  11 سال پیش
+2 0

در api 21 تب منسوخ شده و نمیشه همزمان هم از تب و هم از تولبار استفاده کنید. برای استفاه از تب به همراه تولبار که بهش pegerSlidingTabStrip گفته میشه به این شکل باید عمل کنید:

ابتدا dependency های مربوطه رو باید به فایل build.Gradle اضافه کنید:

 compile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'

حالا یک فایل xml به این شکل می سازیم:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:fitsSystemWindows="true"
android:background="#8f8fff" android:layout_gravity="right">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My App"
android:textColor="#ffffff"
android:textSize="18dp"
android:id="@+id/textView" android:gravity="bottom|right"/>
</android.support.v7.widget.Toolbar>
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
android:background="#8f8fff"
app:pstsDividerColor="#00000000"
app:pstsIndicatorColor="#aa66cc"
app:pstsIndicatorHeight="5dp"
android:layout_gravity="end"
app:pstsTabPaddingLeftRight="20dp"/>
</LinearLayout>

دقت کنید که من خاصیت pstsDividerColorرو کاملا محو قرار دادم تا هیچ divider ای نشون داده نشه شما میتونید رنگش رو به دلخواه عوض کنید

حالا میریم توی فایل xml ای که می خوایم تولبار به همراه تب رو نشون بدیم اینکار رو میکنیم:

     <include layout="@layout/actionbar_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="end"
/>

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="#ffffff" android:layout_gravity="right"/>

خوب تولبار به همراه تب رو به پروژه include کردیم و همچنین از ViewPager هم برای اسلاید بین صفحات استفاده می کنیم.

حالا یک چنتا فرگمنت می سازیم که اینجاشو دیگه می زارم به عهده خودتون بعد باید برای ViewPager مون یک Adapter بسازیم به این شکل:

 public class PageAdapter extends FragmentPagerAdapter{

private String[] titles = {"First","Second","Third"};

public PageAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (position){
case 0:
fragment = new FragmentA();
break;
case 1:
fragment = new FragmentB();
break;
case 2:
fragment = new FragmentC();
break;
}
return fragment;
}

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

@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
}

خوب آرایه titles اسامی عناوین تبها رو در خودش نگه میداره و از متد getPageTitle هم برای دادن عنوان از آرایه به تب استفاده می کنیم

حالا میایم توی اکتیوتی که می خوایم تب رو توش نشون بدیم و بدین شکل توش کد میزنیم:

   Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
PageAdapter adapter = new PageAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);

PagerSlidingTabStrip tabStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabStrip.setViewPager(pager);
tabStrip.setTextColor(Color.WHITE);
tabStrip.setIndicatorColor(Color.WHITE);

و دیگه چیزی نمیمونه اینم یک عکس از اونی که من ساختم

0 0
خیلی عالیه دمت گرم (11 سال پیش)

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