我最近开始在 android 中进行开发,但我仍在尝试了解一些概念。
我一直在努力设计一个电话式键盘,我得到它的大部分工作和寻找我想要的方式,例如
我的下一步是将我们在这里看到的所有内容放入选项卡中,以便我可以在多个活动之间切换。
我将以下 XML 用于TabHost
:
<?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:orientation="vertical">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="70.0dp"
android:layout_weight="0" />
</LinearLayout>
</TabHost>
和以下TabActivity
管理选项卡逻辑:
[Activity(MainLauncher = true, Label = "@string/app_name", Theme = "@android:style/Theme.NoTitleBar")]
public class TabContainer : TabActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.TabContainerLayout);
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent(this, typeof(KeypadActivity));
intent.AddFlags(ActivityFlags.NewTask);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = TabHost.NewTabSpec("keypad");
spec.SetIndicator("Keypad", Resources.GetDrawable(Resource.Drawable.keypad_light));
spec.SetContent(intent);
TabHost.AddTab(spec);
// Do the same for the other tabs
intent = new Intent(this, typeof(LogsActivity));
intent.AddFlags(ActivityFlags.NewTask);
spec = TabHost.NewTabSpec("logs");
spec.SetIndicator("Logs", Resources.GetDrawable(Resource.Drawable.logs_light));
spec.SetContent(intent);
TabHost.AddTab(spec);
intent = new Intent(this, typeof(UnsetActivity));
intent.AddFlags(ActivityFlags.NewTask);
spec = TabHost.NewTabSpec("unset");
spec.SetIndicator("Unset", Resources.GetDrawable(Resource.Drawable.unset_light));
spec.SetContent(intent);
TabHost.AddTab(spec);
TabHost.CurrentTab = 0;
}
}
虽然选项卡正常运行,但我失去了以前键盘的功能和样式,现在显示如下:
为什么当我把现有的KeypadActivity
插入到 中时TabHost
,我失去了功能和风格?我怎样才能在里面维护它TabHost
?