Android 添加和删除ArrayPagerAdapter的选项卡

Android 添加和删除ArrayPagerAdapter的选项卡,android,fragmentpageradapter,commonsware-cwac,commonsware,Android,Fragmentpageradapter,Commonsware Cwac,Commonsware,我正在尝试添加和删除选项卡,就像我的代码中演示的那样。我有一个切换按钮,可以调用arrayAdapter.remove方法中的remove()。调用arrayAdapter.remove时,请求位置的选项卡将正确删除,但更改不会反映在该选项卡的标题中。此外,当我尝试在删除一个选项卡后单击最后一个选项卡时,除了要删除的选项卡外,什么也不会发生。如果这是重新排列选项卡的逻辑,我将如何摆脱这个空选项卡?我知道标签的碎片被删除了,因为当我尝试滑动到它时,我再也无法到达它。我在add()向适配器添加选项卡

我正在尝试添加和删除选项卡,就像我的代码中演示的那样。我有一个切换按钮,可以调用
arrayAdapter.remove
方法中的
remove()。调用
arrayAdapter.remove
时,请求位置的选项卡将正确删除,但更改不会反映在该选项卡的标题中。此外,当我尝试在删除一个选项卡后单击最后一个选项卡时,除了要删除的选项卡外,什么也不会发生。如果这是重新排列选项卡的逻辑,我将如何摆脱这个空选项卡?我知道标签的碎片被删除了,因为当我尝试滑动到它时,我再也无法到达它。我在
add()
适配器添加选项卡时遇到类似问题。单击切换按钮时会调用setTabsToShow()
,并且
add()
remove()
与演示中的相同。我已经在下面发布了我的代码

private void add(boolean before) {  

    int current=mViewPager.getCurrentItem();
    SimplePageDescriptor desc=
            new SimplePageDescriptor(buildTag(arrayAdapter.getCount()),
                    buildTitle(arrayAdapter.getCount()),0);

    if (before) {
        arrayAdapter.insert(desc, current);
    }
    else {
        if (current < arrayAdapter.getCount() - 1) {
            arrayAdapter.insert(desc, current + 1);
        }
        else {
            arrayAdapter.add(desc);
        }
    }
}


private void remove() {
    if (arrayAdapter.getCount() > 1) {
        arrayAdapter.remove(1);

    }
}



public void setTabsToSHow() {


remove();

    }
private void add(boolean before){
int current=mViewPager.getCurrentItem();
SimplePageDescriptor描述=
新的SimplePageDescriptor(buildTag(arrayAdapter.getCount()),
buildTitle(arrayAdapter.getCount()),0);
如果(之前){
arrayAdapter.insert(描述,当前);
}
否则{
if(当前1){
阵列适配器。移除(1);
}
}
public void setTabsToSHow(){
删除();
}

“调用arrayAdapter.remove时,请求位置的选项卡被正确删除,但该选项卡的标题未反映更改”--我不知道“该选项卡的标题”是什么。“另外,当我尝试在删除一个选项卡后单击最后一个选项卡时,除了要删除的选项卡之外,什么也没有发生”——我不知道你的意思。“如果这是重新排列选项卡的逻辑,我将如何摆脱这个空选项卡?”--我不知道“空选项卡”是什么。我有4个选项卡。当我从一个选项卡调用remove()以删除另一个选项卡时,要删除的选项卡将成功删除。因此,我无法再滑动到它或单击列表标题中的任何位置来访问选项卡(在删除1后,仍然有4个选项卡,而不是3个)。因此,仍然有4个选项卡,其中3个我没有删除,最后还有一个当我点击它时,它什么也不做。不确定这是什么描述,但当我尝试滑动到它或单击标题以进入选项卡时,什么也没有发生。“仍然有4个,而不是删除后的3个”--那么无论你在选项卡上使用什么,都不会对
ViewPager
内容的更改做出反应。当你说“无论您在选项卡上使用什么”这是什么意思?我想这就是我使用arrayPagerAdapter的目的。我想我想知道的主要问题是从哪里开始,甚至从了解为什么会发生这种情况开始。我需要在ArrayAdapter中的remove方法中添加代码吗?这是什么意思?“--嗯,
ViewPager
没有选项卡。还有一些功能与
ViewPager
配合使用,以提供选项卡
TabLayout
PagerTaskStrip
,一个看似无限多的第三方库,等等。“我想我想要弄清楚的主要事情是从哪里开始,甚至从弄清楚为什么会发生这种情况开始。”--我暂时不考虑这些选项卡,而是专注于以编程方式确定
ArrayPageAdapter
ViewPager
的状态是否是您在进行更改后所期望的状态。一旦确定它们正常,然后找出选项卡不同步的原因。“调用arrayAdapter.remove时,请求位置的选项卡已正确删除,但更改不会反映在该选项卡的标题中”--我不知道“该选项卡的标题”是什么。“另外,当我尝试在删除一个选项卡后单击最后一个选项卡时,除了要删除的选项卡之外,什么也没有发生”——我不知道你的意思。“如果这是重新排列选项卡的逻辑,我将如何摆脱这个空选项卡?”--我不知道“空选项卡”是什么。我有4个选项卡。当我从一个选项卡调用remove()以删除另一个选项卡时,要删除的选项卡将成功删除。因此,我无法再滑动到它或单击列表标题中的任何位置来访问选项卡(在删除1后,仍然有4个选项卡,而不是3个)。因此,仍然有4个选项卡,其中3个我没有删除,最后还有一个当我点击它时,它什么也不做。不确定这是什么描述,但当我尝试滑动到它或单击标题以进入选项卡时,什么也没有发生。“仍然有4个,而不是删除后的3个”--那么无论你在选项卡上使用什么,都不会对
ViewPager
内容的更改做出反应。当你说“无论您在选项卡上使用什么”这是什么意思?我想这就是我使用arrayPagerAdapter的目的。我想我想知道的主要问题是从哪里开始,甚至从了解为什么会发生这种情况开始。我需要在ArrayAdapter中的remove方法中添加代码吗?这是什么意思?“--嗯,
ViewPager
没有选项卡。还有一些功能与
ViewPager
配合使用,以提供选项卡
TabLayout
PagerTaskStrip
,一个看似无限多的第三方库,等等。“我想我想要弄清楚的主要事情是从哪里开始,甚至从弄清楚为什么会发生这种情况开始。”--我暂时不考虑这些选项卡,而是专注于以编程方式确定
ArrayPageAdapter
ViewPager
的状态是否是您在进行更改后所期望的状态。一旦你