【问题标题】:Not able to auto scroll to that tab to view on screen which are created dynamically无法自动滚动到该选项卡以在动态创建的屏幕上查看
【发布时间】:2017-08-05 05:33:50
【问题描述】:

//我已经动态生成了许多选项卡,例如 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>

【问题讨论】:

  • 请分享 XML 文件

标签: android tabs android-viewpager android-tablayout


【解决方案1】:

如果您的 TabLayout 不可滚动,您可以在 XML 中添加以下行到您的 TabLayout:

app:tabMode="scrollable"

【讨论】:

  • 我也试过了,但不是每次负载都能正常工作,它会随机正确
【解决方案2】:

你必须对其应用水平滚动

<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"/>

试试这个...

【讨论】:

    【解决方案3】:

    试试这个:

    mTablayout.getTabAt(position).select();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 2017-10-22
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多