Android标签:来自第二个标签的内容隐藏在第一个标签的内容下

时间:2011-11-14 22:09:41

标签: android view tabs

我正在尝试创建一个具有2标签活动的应用,其中tab1上面有一张图片和一些文字,而tab2有两个用户可以点击的按钮(这应该会导致进一步的活动)< / p>

出于某种原因,我无法在tab2上显示按钮;所有我能看到的是来自tab1的相同图片。仔细观察后,我注意到按钮隐藏在tab1的图片下面。我究竟做错了什么?如何让这张照片消失而不显示在tab2上?

以下是我的代码:

IndexActivity

public class IndexActivity extends TabActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    TabHost.TabSpec spec = getTabHost().newTabSpec("tab1");
    spec.setContent(R.id.tab1content);
    spec.setIndicator("tab1");
    getTabHost().addTab(spec);

    spec = getTabHost().newTabSpec("tab2");
    spec.setContent(R.id.tab2content);
    spec.setIndicator("tab2");
    getTabHost().addTab(spec);

    getTabHost().setCurrentTab(0);    

    }
}

我的main.xml文件是这样的:

<?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">       
                <include layout="@layout/tab1"/>
                <include layout="@layout/tab2"/>            
           </FrameLayout>           
 </LinearLayout>

tab1.xml是这样的:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
       <ImageView android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:scaleType="center"
                  android:src="@drawable/pic"/>
       <ScrollView android:id="@+id/scrolltab1"
                   android:layout_width="fill_parent"
                   android:layout_height="fill_parent">
       <TextView  android:id="@+id/tab1content"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
                  android:background="#65000000"
                  android:text="@string/text"
          android:textColor="#ffffffff"
          android:textSize="20sp"
              android:padding="15dp"  
        />
       </ScrollView>      
</merge>

tab2是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tab2content"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical">

    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.10"
        android:text="Button" />

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.10"
        android:text="Button" />

</LinearLayout>

请帮忙!我一定忽略了一些东西,但我无法弄明白:(

3 个答案:

答案 0 :(得分:0)

我建议你看看这个....

你的例子实际上代表了这个例子.... android tabhost tutorial

我希望你已经看过了....这是我在开发我的第一个Android标签小部件时使用的那个......

PS:请看看上面的这个例子part 2 ...继续每一个以及你需要知道的一切。

答案 1 :(得分:0)

查看您的代码和XML我认为问题在于使用此行的tab1.xml:

<TextView  android:id="@+id/tab1content"...

尝试在ImageViewScrollView周围放置一个布局。并将android:id="@+id/tab1content"移动到布局。像这样:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">
   <LinearLayout android:id="@+id/tab1content"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">

       <ImageView android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:scaleType="center"
              android:src="@drawable/pic"/>
       <ScrollView android:id="@+id/scrolltab1"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent">
       <TextView android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:background="#65000000"
          android:text="@string/text"
          android:textColor="#ffffffff"
          android:textSize="20sp"
          android:padding="15dp" />
       </ScrollView>

   </LinearLayout>
</merge>

答案 2 :(得分:0)

FrameLayout的{​​{1}}中删除以下两行,看看会发生什么。

main.xml