【Android~为什么FragmentPagerAdapter会清除我的Layouts TabItem图标()】幽映每白日,清辉照衣裳。这篇文章主要讲述Android~为什么FragmentPagerAdapter会清除我的Layouts TabItem图标?相关的知识,希望能为你提供帮助。
以下是我的主要活动的布局文件:
<
android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="0dp"
android:layout_height="39dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toStartOf="@+id/settingsButton"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<
android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_mic_black_36dp" />
<
android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_folder_black_36dp" />
<
/android.support.design.widget.TabLayout>
如果我什么也没做,只是运行我的代码包含上面的TabItem将显示图标,但是当我设置TabLayout有一个FragmentPageAdapter时,图标消失,留下一个空白区域。
以下是我的FragmentPageAdpater:
public class ViewPagerFragmentAdapter extends FragmentPagerAdapter
{
private final List<
Fragment>
mFragmentList = new ArrayList<
>
();
public ViewPagerFragmentAdapter(FragmentManager manager)
{
super(manager);
}@Override
public Fragment getItem(int position)
{
return mFragmentList.get(position);
}@Override
public int getCount()
{
return mFragmentList.size();
}public void addFragment(Fragment fragment)
{
mFragmentList.add(fragment);
}
}
任何想法,为什么当我去tabLayout.setupWithViewPager(viewPager); 图标现在消失了吗?我只显示图标而不是文字。只添加了2个片段,因此只显示了2个空白标签。
答案
TabLayout.setupWithViewPager()
最终会打电话给TabLayout.populateFromPagerAdapter()
,后者将调用TabLayout.removeAllTabs()
。之后,它将使用ViewPager
的页面标题创建新标签:因此,布局中的for (int i = 0; i < adapterCount; i++) { addTab(newTab().setText(mPagerAdapter.getPageTitle(i)), false); }
<
TabItem>
标签被简单地丢弃并替换。另一答案作为一个解决方案,我决定将以下内容添加到我的主要活动的onCreate()中
tabLayout.setupWithViewPager(viewPager);
tabLayout.getTabAt(0).setIcon(R.drawable.ic_mic_black_36dp);
tabLayout.getTabAt(1).setIcon(R.drawable.ic_folder_black_36dp);
最后两行将图标添加到我的空白标签中。必须在setupWithViewPager调用之后应用它们。
推荐阅读
- Android setVisibility无法在PagerAdapter中运行
- 在Swing中模拟Android
- Android模拟器缺少硬件配置文件
- 我无法在Android模拟器上打开文件
- 适用于Android的Visual Studio模拟器(如何更改键盘语言)
- DJI Mobile SDK,Android Studio Emulator SDK注册失败
- Android Studio(您的设备无法使用网络监控功能)
- Android模拟器GPS位置给出了错误的时间
- Android模拟器在Ubuntu上速度慢,图形模糊