Android标签问题

时间:2011-03-08 10:10:10

标签: android user-interface tabs

这是我使用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的控件(按钮等),而不是从空白/黑屏开始?

1 个答案:

答案 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方法的各自类中!就是这样。这就是你在每个标签上添加控件(按钮,短信等)的方式(这是一个独立的活动)

它现在就像一个魅力!!!!