gpt4 book ai didi

android - 查看寻呼机 fragment 和标签不同步android

转载 作者:行者123 更新时间:2023-11-29 20:13:40 25 4
gpt4 key购买 nike

在我的项目中,我有一个选项卡布局和一个 fragment viewpager。当我加载 fragment 和选项卡时,选项卡索引和显示的 fragment 不同步,而且当我来回滑动时, fragment 与选项卡不同步。我检查了 getItem(int position)getTitle(int position)方法都具有相同的位置编号和 ArrayList<Fragments> 中的相应条目和 ArrayList<String> (对于选项卡标题)是正确的,但是选项卡的某些显示方式与 View 寻呼机不同步。

这是我的 fragmentPagerAdapter.java

    public class DetailsFragmentPagerAdapter extends FragmentPagerAdapter {

private ArrayList<Fragment> fragments;
private ArrayList<String> titles;

public DetailsFragmentPagerAdapter(FragmentManager fm) {
super(fm);
fragments = new ArrayList<>();
titles = new ArrayList<>();
}

@Override
public Fragment getItem(int position) {
return fragments.get(position);
}

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

@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}

public void setFragment(Fragment fragment, String title) {
fragments.add(fragment);
titles.add(title);
notifyDataSetChanged();
}
}

这是创建时的 Activity 。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
tabLayout = (TabLayout) findViewById(R.id.detailsTabs);
viewPager = (ViewPager) findViewById(R.id.viewPager);
new GetCategoriesAsync2().execute();
}

正在调用异步任务的 doInBackground 正在准备 arraylist

和 onPostExecute

@Override
protected void onPostExecute(Void aVoid) {
int size = lists.size();
ArrayList<Fragment> fragments = new ArrayList<>(size);
ArrayList<String> titles = new ArrayList<>(size);
for (int i = 0; i < lists.size(); i++) {
ArrayList<String> x = lists.get(i);
titles.add(x.remove(0));
fragments.add(DetailsListFragment.newInstance(x));
}
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentPagerAdapter = new DetailsFragmentPagerAdapter(fragmentManager);
fragmentPagerAdapter.setFragments(fragments,titles);
viewPager.setAdapter(fragmentPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
progressDialog.dismiss();
}

我正在使用设计支持库 23.0.1,构建目标是 23。如何修复此选项卡布局不同步?

最佳答案

如果你使用 TabLayout ,你需要将它连接到适配器

If you're using a ViewPager together with this layout, you can use setTabsFromPagerAdapter(PagerAdapter) which will populate the tabs using the given PagerAdapter's page titles. You should also use a TabLayout.TabLayoutOnPageChangeListener to forward the scroll and selection changes to this layout like so:

ViewPager viewPager = ...;
TabLayout tabLayout = ...;
viewPager.addOnPageChangeListener(new TabLayoutOnPageChangeListener(tabLayout));

关于android - 查看寻呼机 fragment 和标签不同步android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34391393/

25 4 0