我正在使用此代码。
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;
}
// Tabber视图
但是这个按钮隐藏了Tabber视图的标签。我想添加在tabber视图上方添加此按钮。 Plz帮助我......我遇到了很大麻烦。 问候。
答案 0 :(得分:1)
所以基本上你想要一个位于TabWidget
标签上方的按钮(或按钮),无论选择哪个标签?
只需将您的布局文件更改为与此类似的内容(伪代码)......
<?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