Как заставить селектор под вкладками прокручивать до выбранной вкладки? - PullRequest
0 голосов
/ 20 сентября 2018

tablayout with scroll

Я хочу прокрутить селектор (розовая линия) до следующей вкладки (при заполнении).мои фрагменты прокручиваются, но селектор не может прокручивать.кто-нибудь может помочь?

MainActivity.java

//Adding the tabs using addTab() method
    tabLayout.addTab(tabLayout.newTab().setText("On Reserved"));
    tabLayout.addTab(tabLayout.newTab().setText("On Fill-up"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

activity_main.java

<!-- our tablayout to display tabs  -->
<android.support.design.widget.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

<!-- View pager to swipe views -->
<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"></android.support.v4.view.ViewPager>

Ответы [ 4 ]

0 голосов
/ 20 сентября 2018

Эта проблема возникает, когда вы не устанавливаете viewpager с tablayout и наоборот.Поэтому, пожалуйста, добавьте следующие строки в свой код ...

PagerAdapter pagerAdapter = new PagerAdapter (getSupportFragmentManager (), nooftabs);viewpager.setAdapter (pagerAdapter);

tabLayout.setupWithViewPager (viewpager, true);

Надеюсь, это может помочь вам

0 голосов
/ 20 сентября 2018
PagerAdapter pagerAdapter = new PagerAdapter(getChildFragmentManager());
viewPager.setAdapter(pagerAdapter);
tabLayout.setupWithViewPager(mBinder.viewPager);//This line is important to make tab scrollable with viewpager and it should be after set adapter to viewpager
0 голосов
/ 20 сентября 2018

Вы должны назначить tablayout в viewpager, как показано ниже код

// listener for tablayout when you select tab for change view
tabLayout.setOnTabSelectedListener(this);
 // assign tablayout in viewpager
 viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

это метод переопределения, когда вы нажимаете на вкладке, тогда viewpager это изменение

@Override
public void onTabSelected(TabLayout.Tab tab) {
    viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(TabLayout.Tab tab) {

}

@Override
public void onTabReselected(TabLayout.Tab tab) {

}
0 голосов
/ 20 сентября 2018

Попробуйте это решение

TabTextColor устанавливает цвет для заголовка вкладок, передав здесь ColorStateList, чтобы цвета вкладок менялись в различных ситуациях, таких как выбранный, активный, неактивный и т. Д. TabIndicatorColor устанавливает цвет для индикторапод вкладками.

tabLayout.setTabTextColors(ContextCompat.getColorStateList(this, R.drawable.tab_selector));
tabLayout.setSelectedTabIndicatorColor(ContextCompat.getColor(this, R.color.indicator));

Надеюсь, это сработает для вас.

...