2017-08-05 15 views
0

//我已生成动态数量的标签页,如30个标签,默认情况下,我已选择特定的标签按索引,但我无法自动滚动到该选项卡以在屏幕上查看无法自动滚动到该选项卡在屏幕上查看动态创建

//首先我称片段通过使日期和相应的数据列表,显示

viewPager = (ViewPager) findViewById(R.id.view_pager); 
      tabLayout = (TabLayout) findViewById(R.id.tab_layout); 
      tabLayout.setupWithViewPager(viewPager); 

FragmentManager fragmentManager = getSupportFragmentManager(); 
    viewPager.setAdapter(new CalenderFragmentPageAdapter(fragmentManager, MainActivity.this, Finaldates, ProductList)); 

//然后我称,其通过延伸FragmentStatePagerAdapter

集标签属性
public class CalenderFragmentPageAdapter extends FragmentStatePagerAdapter { 

private ArrayList tabTitle; 
Context context; 
ArrayList<Map<String, String>> ProductList; 
String finalDate; 

public CalenderFragmentPageAdapter(FragmentManager fm, Context context, ArrayList<String> str, ArrayList<Map<String, String>> ProductList) { 
    super(fm); 
    this.context = context; 
    tabTitle = str; 
    this.ProductList = ProductList; 

} 

@Override 
public Fragment getItem(int position) { 

// called new fragment for each generated tab 

    return calenderFragment; 
} 

@Override 
public int getCount() { 
    return tabTitle.size(); 
} 

@Override 
public CharSequence getPageTitle(int position) { 

    //Title to show on tab 

} 
} 

//然后在最后我有加载,我通过

TabLayout.Tab tab = tabLayout.getTabAt(selectedTabPos); 

想 选择选项卡中的片段//现在我可以选择片段通过上述方法选项卡,但不能自动滚动为此,我已经设置selectedTabPos

标签

//的Xml

<android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary"/> 
      <android.support.design.widget.TabLayout 
       android:id="@+id/tab_layout" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/white" 
       app:tabGravity="center" 
       app:tabIndicatorColor="@color/colorAccent" 
       app:tabMode="scrollable" 
       app:tabSelectedTextColor="@color/colorPrimary" 
       app:tabTextColor="@color/colorAccent" /> 
     </android.support.design.widget.AppBarLayout> 



     <android.support.v4.view.ViewPager 
      android:id="@+id/view_pager" 
      android:layout_marginTop="115dp" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

     </android.support.v4.view.ViewPager> 
+0

请共享XML文件 –

回答

0

如果TabLayout不滚动,你可以在XML中添加下面一行到你的TabLayout

app:tabMode="scrollable"

+0

我也尝试过,但没有在每个负载上工作,其随机获取正确 –

0

你必须水平滚动适用于它

<HorizontalScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:scrollbars="none"> 
    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </android.support.design.widget.TabLayout> 
</HorizontalScrollView> 
<android.support.v4.view.ViewPager 
    android:id="@+id/viewPager_details" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/colorMyGreen"/> 

试试这个...

0

试试这个:

mTablayout.getTabAt(position).select();