Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在TabHost中“取消选择”选项卡_Android_Tabs_Android Tabhost_Unselect - Fatal编程技术网

Android 在TabHost中“取消选择”选项卡

Android 在TabHost中“取消选择”选项卡,android,tabs,android-tabhost,unselect,Android,Tabs,Android Tabhost,Unselect,我有一个可容纳5个标签的标签主机。 据我所知,必须始终选择一个选项卡 我需要一种方法来取消选择我的所有选项卡,这样就不会选择任何选项卡 如果tabhost是指在任何时候都选择一个选项卡, 如何使其显示为未选择选项卡的用户界面?这是不可能的。但是可以,您可以将所选选项卡的颜色设置为未选中,并通过在“未选中”时管理全局变量和在希望正常向用户显示时设置普通布局,在其上设置空白布局。但这是一种诡计 希望你明白我的意思 编辑: 假设您在代码中的某个地方设置了String what=demouse,将其显示

我有一个可容纳5个标签的标签主机。 据我所知,必须始终选择一个选项卡

我需要一种方法来取消选择我的所有选项卡,这样就不会选择任何选项卡

如果tabhost是指在任何时候都选择一个选项卡,
如何使其显示为未选择选项卡的用户界面?

这是不可能的。但是可以,您可以将所选选项卡的颜色设置为未选中,并通过在“未选中”时管理全局变量和在希望正常向用户显示时设置普通布局,在其上设置空白布局。但这是一种诡计

希望你明白我的意思

编辑:

假设您在代码中的某个地方设置了String what=demouse,将其显示为“unselected”,则可以使用此函数更改选项卡的颜色:

Main.class:

blank.xml:


这是不可能的。但是可以,您可以将所选选项卡的颜色设置为未选中,并通过在“未选中”时管理全局变量和在希望正常向用户显示时设置普通布局,在其上设置空白布局。但这是一种诡计

希望你明白我的意思

编辑:

假设您在代码中的某个地方设置了String what=demouse,将其显示为“unselected”,则可以使用此函数更改选项卡的颜色:

Main.class:

blank.xml:


为此,可能使用tabHost不是正确的方法?

为此,可能使用tabHost不是正确的方法?

尝试以下方法:

final TabWidget tabWidget = tabHost.getTabWidget();
final int n = tabWidget.getChildCount();
for (int i = 0; i < n; ++i) {
    tabWidget.getChildAt(i).setSelected(false);
}
并在需要时选择此选项卡

tabHost.setCurrentTab(hiddenTabIndex);
试试这个:

final TabWidget tabWidget = tabHost.getTabWidget();
final int n = tabWidget.getChildCount();
for (int i = 0; i < n; ++i) {
    tabWidget.getChildAt(i).setSelected(false);
}
并在需要时选择此选项卡

tabHost.setCurrentTab(hiddenTabIndex);

你能为我提供一些基本的后续步骤吗?比如说,如果有系统的颜色,我必须使用这个?如何准确地创建空白布局并将其设置为特定的标签?首先,谢谢您的帮助。现在,我已经使用您的代码更改了选项卡的颜色,我不想使用setBackgroundDrawable更改选项卡的背景。我正在尝试为未选中的选项卡获取原始绘图。我发现资源的名称是:tab_unselected.9,但我不知道如何使用它作为选项卡的背景绘图。我尝试了tabhost.getTabWidget.getChildAttabhost.getCurrentTab.setBackgroundDrawablegetResources.getDrawableR.drawable.tab_未选中。9;但显然这是错误的。我如何使用这些资源?或者有没有更聪明的方法来获得原始的绘图功能?@Eitan:对不起,我不知道这一点你能为我提供一些基本的后续步骤吗?比如说,如果有系统的颜色,我必须使用这个?如何准确地创建空白布局并将其设置为特定的标签?首先,谢谢您的帮助。现在,我已经使用您的代码更改了选项卡的颜色,我不想使用setBackgroundDrawable更改选项卡的背景。我正在尝试为未选中的选项卡获取原始绘图。我发现资源的名称是:tab_unselected.9,但我不知道如何使用它作为选项卡的背景绘图。我尝试了tabhost.getTabWidget.getChildAttabhost.getCurrentTab.setBackgroundDrawablegetResources.getDrawableR.drawable.tab_未选中。9;但显然这是错误的。我如何使用这些资源?或者有没有更聪明的方法来获得原始的绘图功能?@Eitan:对不起,我不知道这一点你有什么建议吗?嗯,我在考虑一个全局布局,在隐藏模式视图中包含所有选项卡。你希望显示的是一个。但是,您必须创建自己的包含选项卡标题的布局,这样当您想要取消选择所有选项卡时,您将能够在选项卡标题上设置所需的背景。这不是很干净,但很管用。希望你不必这样做;你有什么建议吗?嗯,我在考虑一个全局布局,在隐藏模式视图中包含所有选项卡。你希望显示的是一个。但是,您必须创建自己的包含选项卡标题的布局,这样当您想要取消选择所有选项卡时,您将能够在选项卡标题上设置所需的背景。这不是很干净,但很管用。希望你不必这样做;
tabHost.addTab(
            tabHost.newTabSpec("hiddenTab").setIndicator(""),
            MyFragment.class,
            null
    );

tabHost.getTabWidget().getChildTabViewAt(hiddenTabIndex).setVisibility(View.GONE);
tabHost.setCurrentTab(hiddenTabIndex);