以下是具有意图数据的选项卡示例.
在调试时我发现总是在第一个选项卡中我们在tab选项卡中添加了tab主机
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("list")
.setContent(new Intent(this, List1.class)));
Run Code Online (Sandbox Code Playgroud)
即使我将tab2定义为当前选项卡如何解决这个问题,"List1"意图的oncreate方法也会被调用,无论它是否是我们当前的选项卡?
public class Tabs3 extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("list")
.setContent(new Intent(this, List1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("photo list")
.setContent(new Intent(this, List8.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
// This tab sets the intent flag so that it is recreated each time
// the tab is clicked.
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("destroy")
.setContent(new Intent(this, Controls2.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
}
}
Run Code Online (Sandbox Code Playgroud) 好吧,这让我疯了 - 我搜索了所有可以找到的参考文献和例子,我似乎仍然遗漏了一些非常明显的东西.这些是7天电视指南的标签(通常不带红色箭头,显然:) :)

我需要知道的是构成Tab本身主体/背景的对象(我认为是View还是Drawable)是什么?(如红色箭头所示)以及如何访问它或让它自动将其状态颜色更改为我选择的列表?另外,如何让指标TextView的状态颜色跟随呢?
示例:在上面的捕获中,它是可读的,因为我已将textColor设置为静态灰色(而不是在所选选项卡上消失的亮白色).但我想让它自动变为白色标签上的黑色文字(选中)和黑色的明亮白色文字(未选中).
感谢所有的帮助.
我正在编写一个android程序,其中我有一个使用制表符的活动.
活动
public class UnitActivity extends TabActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
TabSpec spec;
Resources res = getResources();
LayoutInflater.from(this).inflate(R.layout.unit_view, tabHost.getTabContentView(), true);
spec = tabHost.newTabSpec("controls");
spec.setIndicator("Control", res.getDrawable(R.drawable.ic_tab_equalizer));
spec.setContent(R.id.txtview);
tabHost.addTab(spec);
}
Run Code Online (Sandbox Code Playgroud)
}
R.layout.unit_view引用的XML
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TextView android:id="@+id/txtview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom"
android:text="nullpointer this!" />
</FrameLayout>
</LinearLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)
据我所知,我正在做我在android sdk的tabs1 api示例中看到的相同内容.我尝试过"getLayoutInflator()"而不是"LayoutInflator.from(this)",结果相同.
如果我用"setContentView(R.layout.unit_view)"替换LayoutInflater行,我的程序不会因空指针异常而崩溃,但我的内容完全空白且为空.我得到了标签,就是这样.
我检查确保R.layout.unit_view和tabHost在运行LayoutInflater行时不为空,它们似乎没问题.他们肯定不是空的.我还检查过确保LayoutInflater.from(this)返回一个有效的布局inflater对象,它确实如此.
指示错误的logcat说
E/AndroidRuntime( 541): java.lang.NullPointerException E/AndroidRuntime( …
TabWidget下的android:divider属性是否有效?我试过android的Tab Layout教程只是为了测试(http://developer.android.com/resources/tutorials/views/hello-tabwidget.html)并将android:divider设置为某个图像(现在我用的是android垂直滚动条作为drawable真正强调它是否被拾取(从框架中复制),但是当我在模拟器上运行它时,它似乎没有工作.根据文档,TabWidget似乎支持这个attribute:"Drawable用于在制表符之间绘制分隔符."
有人可以帮忙吗?我正在使用九补丁的drawable作为我的分隔图像drawable.
MB
我想像下图一样创建TabBar:

这里,所有标签栏都是正常的.只是他们是定制的.现在我想像上面的图像一样创建Tab栏.其中中心Tab被抬起.
那么我该怎么做才能实现呢?
如果有任何演示那么它会很好.
请帮我.
我有一个标签小部件,其中包含 3 个标签。我需要在更改选项卡时发出信号,查看 pyQt 文档 currentChanged() 是在更改选项卡时发出的信号,但它对我不起作用。所以需要你的帮助来理解相同的,
我的代码如下:
main_tab_widget = QTabWidget()
#Creating Tabs
self.run_tab = QWidget()
self.cc_tab = QWidget()
self.result_tab = QWidget()
#Adding Tabs to Tab Widget
main_tab_widget.addTab(self.run_tab, "RUN")
main_tab_widget.addTab(self.cc_tab, "Config Creator")
main_tab_widget.addTab(self.result_tab, "Result")
#Layout Creation
main_layout = QVBoxLayout()
main_layout.addWidget(main_tab_widget)
self.connect(self.cc_tab, SIGNAL('currentChanged(int)'), self.pseudofunction)
self.RunTab()
self.setLayout(main_layout)
#self.configcreatortab()
#self.resulttab()
def pseudofunction(self):
print 'Inside Pseudo Function'
Run Code Online (Sandbox Code Playgroud) public class SoapBox extends TabActivity{
private TabHost tabHost;
private void setupTabhost()
{
tabHost=(TabHost)findViewById(android.R.id.tabhost);
tabHost.setup();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
TabHost tabHost=getTabHost();
setupTabhost();
tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_space);
Intent intent1=new Intent().setClass(this, MySoapBox.class);
setupTab(new TextView(this), "My SoapBox", intent1);
Intent intent2=new Intent().setClass(this, FriendsSoapBox.class);
setupTab(new TextView(this),"Friends SoapBox", intent2);
Intent intent3=new Intent().setClass(this, Recommendations.class);
setupTab(new TextView(this),"Recommendations", intent3);
tabHost.setCurrentTab(0);
}
private void setupTab(final View view, final String tag, Intent intent)
{
View tabView=createTabView(tabHost.getContext(), tag);
TabSpec tabSpec=tabHost.newTabSpec(tag).setIndicator(tabView).setContent(intent);
tabHost.addTab(tabSpec);
}
private static View createTabView(final Context context,final String text)
{ …Run Code Online (Sandbox Code Playgroud) 在Eclipse上的XML编辑器中,我看到了tabhost,它看起来就像我想要的那样,但是当我运行它时,我根本看不到tabHost,我怎样才能确保它是可见的?
这是我的XML.再次,编辑器显示它,但是当我运行它时它没有,膨胀它的活动还没有做太多,只需更改两个文本字段.有任何想法吗?
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2"
android:orientation="vertical" >
<TextView
android:id="@+id/name"
android:layout_width="238dp"
android:layout_column="0"
android:layout_columnSpan="2"
android:layout_gravity="top|left"
android:layout_marginTop="7dp"
android:layout_marginLeft="3dp"
android:layout_row="0"
android:gravity="top"
android:maxLines="1"
android:padding="3dp"
android:text="Motherfucking Acer Laptop X314134"
android:textAppearance="?android:attr/textAppearanceMedium" />
<View
android:layout_height="2dp"
android:layout_width="fill_parent"
android:layout_row="1"
android:layout_column="0"
android:layout_columnSpan="2"
android:background="#FF000000"
/>
<TabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_column="0"
android:layout_columnSpan="2"
android:layout_gravity="center_horizontal"
android:layout_row="2" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/Info"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
<LinearLayout
android:id="@+id/Specs"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</LinearLayout>
<LinearLayout
android:id="@+id/Fotos"
android:layout_width="match_parent"
android:layout_height="match_parent" > …Run Code Online (Sandbox Code Playgroud) 我有tabbar5个标签,我在第4个标签上添加了徽章.我想在服务器执行某些操作后更新我的徽章值.但不知道怎么能这样做.此外,我想从不同的更新徽章价值activities.添加徽章的代码片段Tabbar
TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs);
badge = new BadgeView(context, tabs, 3);
badge.setTextSize(12);
badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
badge.setText(pref.getString("balance", "0"));
badge.toggle();
Run Code Online (Sandbox Code Playgroud)
先感谢您
我有使用android.support.v4库非常简单FragmentActivity,有的只是FragmentActivity,其中包含4片段内TabHost.
没有异步任务,没有onSaveInstanceState()的实现.
在市场上几周之后我得到了很多异常报告,名为"java.lang.IllegalStateException:onSaveInstanceState后无法执行此操作"(请参阅下面的堆栈跟踪),全部来自三星设备(SM-N9003,GT-I9305,GT) -N7100 ......等等,完全不知道出了什么问题.
我之前搜索过一些类似的问题,但根本没有答案.
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
代码:
private void setupTabs() {
FragmentTabHost tabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
tabHost.addTab(setIndicator(this, tabHost.newTabSpec(FragmentList), getString(R.string.tabwidget_List), R.drawable.btn_icon_order), ListFragment.class, null);
tabHost.addTab(setIndicator(this, tabHost.newTabSpec(FragmentSwitch), getString(R.string.tabwidget_Switch), R.drawable.btn_icon_switch), SwitchFragment.class, null);
tabHost.addTab(setIndicator(this, tabHost.newTabSpec(FragmentQueue), getString(R.string.tabwidget_Queue), R.drawable.btn_icon_queue), QueueFragment.class, null);
tabHost.addTab(setIndicator(this, tabHost.newTabSpec(FragmentMore), getString(R.string.tabwidget_More), R.drawable.btn_icon_more), MoreFragment.class, null);
}
private TabSpec setIndicator(Context context, TabSpec tabSpec, String …Run Code Online (Sandbox Code Playgroud)