#android #android-actionbar #android-tabs
#Android #android-actionbar #android-вкладки
Вопрос:
Привет, я работаю над приложением для Android, и я хотел бы знать, возможно ли проводить пальцем по вкладкам, которые не являются вкладками панели действий, а просто обычными вкладками фрагмента. Я искал это решение в Интернете, поэтому, если кто-нибудь знает, как это делается, или у вас есть ссылка на руководство о том, как я могу этого добиться, я буду очень благодарен заранее спасибо
Комментарии:
1. Что такое «обычные вкладки фрагмента»?
2. @CommonsWare Их нет на панели действий, им требуется FragmentTabHost в их макете, и они не перемещаются влево или вправо. Вот как я бы выразился
Ответ №1:
Что ж, типичный способ реализации вкладок для прокрутки сегодня включает в себя ViewPager
для содержимого вкладки и какой-либо индикатор с вкладками, такой как PagerTabStrip
или TabPageIndicator
из библиотеки ViewPagerIndicator.
Если вы хотите использовать FragmentTabHost
, вы можете обернуть TabWidget
в HorizontalScrollView
, чтобы получить эффект прокрутки.
Ответ №2:
По моему мнению, было бы лучше использовать вкладки панели действий, которые синхронизировали события переключения с ViewPager. Вы можете использовать TabHost для панели вкладок без панели действий, но на случай, если вы захотите ознакомиться, я приведу это простое и эффективное руководство здесь :
http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/
Ответ №3:
Это возможно, вы не используете панель действий, вы должны использовать этот формат.
Вы создаете три текстовых представления вкладки над view pager и используете это textviews для tab, теперь вкладки панели действий не нужны,
TabPagerAdapter = new TabPagerAdapter(getSupportFragmentManager());
viewPager = (ViewPager)findViewById(R.id.pager);
viewPager.setAdapter(TabPagerAdapter);
txt1.setBackgroundColor(Color.parseColor("#01579B"));
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
//Page Position
int pagePosition= viewPager.getCurrentItem();
// Toast.makeText(getApplicationContext(),"" pagePosition,1000).show();
if(pagePosition==0){
txt1.setBackgroundColor(Color.parseColor("#01579B"));
txt2.setBackgroundColor(Color.parseColor("#e64b17"));
txt3.setBackgroundColor(Color.parseColor("#e64b17"));
}
if(pagePosition==1){
WL2.setBackgroundColor(Color.parseColor("#01579B"));
WL1.setBackgroundColor(Color.parseColor("#e64b17"));
WL3.setBackgroundColor(Color.parseColor("#e64b17"));
}
if(pagePosition==2){
txt2.setBackgroundColor(Color.parseColor("#e64b17"));
txt3.setBackgroundColor(Color.parseColor("#01579B"));
txt1.setBackgroundColor(Color.parseColor("#e64b17"));
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});