启用/禁用操作栏中的选项卡
可以在 ActionBar 中启用/禁用选项卡吗? 使用 TabHost 这不是问题.. 我这样做:
tabHost.getTabWidget().getChildAt(3).setVisibility(true);
并且一切正常.. 但如果我想对 ActionBar 中的选项卡做同样的事情? Tab 类中不存在 setEnable();
ActionBar bar = getActionBar();
Tab tab = bar.newTab();
tab.setText("Test");
tab.setEnable(false); /*DON'T EXIST!!*/
我该怎么办?
It's possible to enable/disable Tabs in ActionBar?
With TabHost this is not a problem.. I do:
tabHost.getTabWidget().getChildAt(3).setVisibility(true);
and all works.. but if i want to do the same thing with Tabs in ActionBar??
In Tab class don't exist setEnable();
ActionBar bar = getActionBar();
Tab tab = bar.newTab();
tab.setText("Test");
tab.setEnable(false); /*DON'T EXIST!!*/
How can I do??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用
removeTab( ActionBar.Tab tab )
-ActionBar
的方法:然后使用
addTab( ActionBar.Tab tab, int position )
将其放回原处,前提是您保存了删除的Tab
的位置:You could use the
removeTab( ActionBar.Tab tab )
-method ofActionBar
:And then use the
addTab( ActionBar.Tab tab, int position )
to put it back in, provided that you save the position of theTab
you removed:我还没有测试过这个——这将取决于你,但它应该让你对如何处理你的问题有一个总体的了解。
共有三个步骤:
第一步
我们需要一些可以为我们处理启用/禁用操作的东西。为此,我们创建了以下类:
第二步
我们需要一些可以保存这些
TabItems
的东西以及一种访问它们的简单方法。为此,我们添加以下类:第三步
我们需要自己处理
Tabs
的选择,因此我们需要创建一个自定义的TabListener
:终于
我们现在可以利用我们创建的框架了。为此,我们需要一个
TabHolder
:我们需要将我们的
Tab
添加到此:并且我们需要在每个
TabListener
上设置自定义TabListener
code>Tab:启用/禁用
要启用或禁用
Tab
,我们只需调用:让我知道它是如何进行的:)
I haven't tested this - that will be up to you, but it should give you an general idea on how you could handle your problem.
There are three steps:
First step
We need something that can handle the enable/disable action for us. For this purpose we create the following class:
Second step
We need something that can hold these
TabItems
and an easy way to access them. For this purpose we add the following class:Third step
We need to handle the selection of
Tabs
ourselves, so we need to create a customTabListener
:Finally
We can now utilize our created framework. To do so, we need a
TabHolder
:We need to add our
Tabs
to this:And we need to set our custom
TabListener
on eachTab
:Enable/Disable
To enable or disable a
Tab
we simply call:Let me know how it goes :)
有一种简单的方法可以从操作栏中删除选项卡栏。只需输入:
这将删除所有选项卡栏。
There is a simple way to remove the Tabs-bar from the Actionbar. Just type:
This will remove any tabs-bar.
你可以覆盖:
public boolean onPrepareOptionsMenu(Menu menu)
,这里设置选项卡启用/禁用例如:然后你可以设置
mMessageNeedtoSend
true或false,调用invalidateOptionsMenu( )
刷新 ActionBar。you can override:
public boolean onPrepareOptionsMenu(Menu menu)
, in here set the tab enable/disable for example:and then you can set the
mMessageNeedtoSend
true or false,callinvalidateOptionsMenu()
to refresh ActionBar.回答晚了,但希望这个解决方法可以帮助对此问题感兴趣的其他人。
如果您使用的是
ViewPager
像往常一样,您可以简单地利用它的位置而不是mLastSelectedTabIndex
,如下所示:Late answer but hope this workaround might help others who are interested in this issue.
If you are using
ViewPager
with it as usual, you can simply utilize its position instead ofmLastSelectedTabIndex
like this:这是通过两个简单的步骤完成的(假设您为选项卡设置自定义视图):
1-禁用功能:避免更改选项卡
2-禁用单击事件:
我现在测试了它并且它正在工作;)
This is done by two simple steps(Assuming you set custom view to the tabs):
1- Disable function: Avoid changing tabs
2- Disable click events:
I tested it right now and it is working ;)