如何在Android中为Tab主机的所有选项卡添加公共按钮?
我正在使用这个代码如何在Android中为Tab主机的所有选项卡添加公共按钮?,android,android-layout,tabs,android-tabhost,tabwidget,Android,Android Layout,Tabs,Android Tabhost,Tabwidget,我正在使用这个代码 private ViewGroup createTabbarView() { bookedZone = "None"; bookedStand = "None"; tabHost = new TabHost(this, null); tabHost.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutPar
private ViewGroup createTabbarView() {
bookedZone = "None";
bookedStand = "None";
tabHost = new TabHost(this, null);
tabHost.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
Button btn = new Button(this);
btn.setText("Emergency");
tabHost.addView(btn, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tabWidget = new TabWidget(this);
tabWidget.setId(android.R.id.tabs);
tabHost.addView(tabWidget, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
FrameLayout frameLayout = new FrameLayout(this);
frameLayout.setId(android.R.id.tabcontent);
frameLayout.setPadding(0, 100, 0, 0);
tabHost.addView(frameLayout, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); // WRAP_CONTENT
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(final String tabId) {
if (tabId.equalsIgnoreCase("TripList")
&& (AVL_Service.pref.getBoolean("BluetoothMeter", false) || AVL_Service.pref.getBoolean("VivotechDevice", false) || AVL_Service.pref.getBoolean(
"BlueBambooDevice", false))) {
if (mBluetoothAdapter == null)
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
final Context tempContext = getBaseContext();
if (mBluetoothAdapter == null) {
// Device does not support Bluetooth
Log.d(getClass().getSimpleName(), "Bluetooth not supported.");
Toast.makeText(tempContext, "Bluetooth not supported!", Toast.LENGTH_LONG).show();
} else {
if (!mBluetoothAdapter.isEnabled()) {
Log.d(getClass().getSimpleName(), "Bluetooth not enabled.");
Toast.makeText(tempContext, "Bluetooth not enabled, trying to enable", Toast.LENGTH_LONG).show();
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, Constants.REQUEST_ENABLE_BT);
// tabHost.getTabWidget().getChildAt(ZoneIndex).requestFocusFromTouch();
} else {
Message lmsg = new Message();
lmsg.obj = null;
lmsg.what = MsgType.TabberClick;
msgHandler.sendMessageDelayed(lmsg, 1000);
}// if bluetooth enabled
}// if bluetooth not supported
}// if Bluetooth connection required
else if (tabId.equalsIgnoreCase("Status")) {
setMeterStatus();
}
}// onTabChanged
});
tabHost.setup();
// Status Tab
TabSpec tabSpec = tabHost.newTabSpec("Status");
tabSpec.setIndicator("Status", getResources().getDrawable(R.drawable.status));
tabSpec.setContent(new TabContentFactory() {
@Override
public View createTabContent(String arg0) {
return createStatusView();
}
});
tabHost.addTab(tabSpec);
// Zones Tab
tabSpec = tabHost.newTabSpec("Zones");
tabSpec.setIndicator("Zones", getResources().getDrawable(R.drawable.zones));
tabSpec.setContent(new TabContentFactory() {
@Override
public View createTabContent(String arg0) {
return createZoneView();
}
});
tabHost.addTab(tabSpec);
// Bids Tab
bidTab = tabHost.newTabSpec("Bids");
bidTab.setIndicator("Bids", getResources().getDrawable(R.drawable.icon + bidCount));
bidTab.setContent(new TabContentFactory() {
@Override
public View createTabContent(String arg0) {
return createBidsView();
}
});
tabHost.addTab(bidTab);
// TripList Tab
tabSpec = tabHost.newTabSpec("TripList");
tabSpec.setIndicator("TripList", getResources().getDrawable(R.drawable.triplist));
tabSpec.setContent(new TabContentFactory() {
@Override
public View createTabContent(String arg0) {
return createManifestView();
}
});
tabHost.addTab(tabSpec);
return tabHost;
}
//塔伯视图
但此按钮隐藏选项卡视图的选项卡。我想在选项卡视图上方添加此按钮。请帮帮我,我有大麻烦了。
关于。那么基本上您想要一个按钮(或多个按钮)位于
选项卡Widget
选项卡上方,而不管选择了哪个选项卡
只需将布局文件更改为类似的内容(伪代码)
...
我已经试过了,但没有动态工作。我不使用xml,你能告诉我如何动态地做吗?即使您需要动态创建tabspec内容,也没有理由不在主视图中使用XML模板,然后简单地生成tabspec内容。在我看来,你为自己做了很多工作
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
... >
<LinearLayout
android:orientation="vertical"
... >
<LinearLayout
android:orientation="horizontal"
... >
<Button
... />
</LinearLayout>
<TabWidget
android:id="@android:id/tabs"
... />
<FrameLayout
android:id="@android:id/tabcontent"
... >
...
</FrameLayout>
</LinearLayout>
</TabHost