div
当我浏览片段时,标签的高光不会改变,但是当我触摸标签时它工作正常。当我触摸它们时,标签指示器从左向右滑动很好,标签的字体颜色也会突出显示。 我认为问题在于这段代码
map.on('popupopen', function (e) {
console.log(e.popup._source); // Layer instance
console.log(e.popup._source.feature); // Layer's feature
console.log(e.popup._contentNode); // Popup content element
// Do highchart stuff with your element and feature data.
});
我该怎么做才能突出显示当前标签...
答案 0 :(得分:13)
我找到了解决方案。
tabLayout.setupWithViewPager(pager);
这种方法很容易设置一切。
答案 1 :(得分:2)
只是另外一点。
最好的办法是最后致电tabLayout.setupWithViewPager(viewPager)
。
至少,在您致电viewPager.clearOnPageChangeListeners()
后不要立即致电viewPager.setOnPageChangeListener()
或tabLayout.setupWithViewPager(viewPager)
,因为这会删除TabLayout在滚动ViewPager
时使用的监听器
答案 2 :(得分:1)
您不应该在tablayout上添加Tab(),因为您已经设置了一个视图寻呼机适配器
执行以下操作,它应该可以正常工作
public class LoginRegister extends AppCompatActivity implements SignUpFragment.OnFragmentInteractionListener ,SignInFragment.OnFragmentInteractionListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_register);
final SigninPagerAdapter adapter = new SigninPagerAdapter(getSupportFragmentManager());
final ViewPager pager = (ViewPager) findViewById(R.id.loginpager);
pager.setAdapter(adapter);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout_signup);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setupWithViewPager(pager);
}
}
SignInPagerAdapter
public class SigninPagerAdapter extends FragmentStatePagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return SingnUpFragment.newInstance()
case 1:
return SignInFragment.newInstance()
default:
return null;
}
}
@Override
public int getCount() {
//return the number of tabs you want in your tabLayout
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
//this is where you set the titles
switch(position) {
case 0:
return "Sign Up";
case 1:
return "Sign In";
}
return null;
}
答案 3 :(得分:0)
更改所选和未选定标签的颜色。在LoginRegister.java文件中使用以下代码:
//tabLayout.setTabTextColors(unselectedTabColor, selectedTabColor)
tabLayout.setTabTextColors(Color.parseColor("#627179"), Color.parseColor("#BF4A32"));
答案 4 :(得分:-1)
尝试在yout代码中添加:
mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
//THIS!!
if (mViewPager != null) {
mViewPager.setCurrentItem(tab.getPosition());
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
它解决了我的问题。