无法自动滚动到该选项卡以在动态创建的屏幕上查看
Not able to auto scroll to that tab to view on screen which are created dynamically
//我已经动态生成了 30 个标签,默认情况下我有 select 按索引编辑特定标签,但我无法自动滚动到该标签以在屏幕上查看
//首先我通过传递日期和相应的数据列表来调用片段来显示
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
调用了 which sets tab 属性
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
}
}
//然后我终于加载了我想要的 selected 选项卡的片段
通过
TabLayout.Tab tab = tabLayout.getTabAt(selectedTabPos);
//现在我可以 select 通过上述方法为该选项卡片段,但无法自动滚动我设置的选项卡 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>
你必须对其应用水平滚动
<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"/>
试试这个...
如果您的 TabLayout
不可滚动,您可以将以下行添加到 XML 中的 TabLayout
:
app:tabMode="scrollable"
试试这个:
mTablayout.getTabAt(position).select();
//我已经动态生成了 30 个标签,默认情况下我有 select 按索引编辑特定标签,但我无法自动滚动到该标签以在屏幕上查看
//首先我通过传递日期和相应的数据列表来调用片段来显示
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
调用了 which sets tab 属性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
}
}
//然后我终于加载了我想要的 selected 选项卡的片段 通过
TabLayout.Tab tab = tabLayout.getTabAt(selectedTabPos);
//现在我可以 select 通过上述方法为该选项卡片段,但无法自动滚动我设置的选项卡 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>
你必须对其应用水平滚动
<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"/>
试试这个...
如果您的 TabLayout
不可滚动,您可以将以下行添加到 XML 中的 TabLayout
:
app:tabMode="scrollable"
试试这个:
mTablayout.getTabAt(position).select();