我正在尝试创建一个具有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>
请帮忙!我一定忽略了一些东西,但我无法弄明白:(
答案 0 :(得分:0)
我建议你看看这个....
你的例子实际上代表了这个例子.... android tabhost tutorial
我希望你已经看过了....这是我在开发我的第一个Android标签小部件时使用的那个......
PS:请看看上面的这个例子part 2 ...继续每一个以及你需要知道的一切。
答案 1 :(得分:0)
查看您的代码和XML我认为问题在于使用此行的tab1.xml:
<TextView android:id="@+id/tab1content"...
尝试在ImageView
和ScrollView
周围放置一个布局。并将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