Вкладки для прокрутки Android, которые не являются вкладками actionbar

#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
            }
        });