这是我使用Android标签获得的奇怪行为。或者也许是模拟器的责任!下面是布局的XML。
为每个选项卡单独设计的布局是res / layout / tab1.xml和res / layout / tab2.xml ...并且一切似乎都正常工作,除了当它绘制时它与标签重叠一些如何。如果我选择TAB1,一切看起来都很正常,但是如果我选择TAB2,它只会覆盖tab1布局。如果我回到tab1,那么一切看起来都很正常。
那么为什么它从tab1中抽取布局而不是从黑/空屏幕开始?在绘制选项卡2的布局和内容之前,TabWidget不应该处理这些情况并调用clear()方法吗?
我正在模拟一台拥有Android 2.2(API级别8)的计算机。
<?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:orientation="vertical"
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">
<include layout="@layout/tab1" />
<include layout="@layout/tab2" />
</FrameLayout>
</LinearLayout>
</TabHost>
编辑:根据要求我会添加tab2布局,这基本上是一个空白屏幕!
<?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">
</LinearLayout>
所以任何想法,如果我切换到tab2 ...它只是绘制(添加字符串)在tab1的控件(按钮等),而不是从空白/黑屏开始?
答案 0 :(得分:0)
解决了问题!!!!
您不需要包含(我刚从之前的main.xml中删除它们)
<include layout="@layout/tab1" />
<include layout="@layout/tab2" />
因为它将与tab1和tab2中的GUI元素重叠。而是将main.xml与tabwidget和framelayout一样完全保留,就像在官方教程中一样。
您需要做的是致电: setContentView(R.layout.tab1)和setContentView(R.layout.tab2)在onCreate方法的各自类中!就是这样。这就是你在每个标签上添加控件(按钮,短信等)的方式(这是一个独立的活动)
它现在就像一个魅力!!!!