单击选项卡后如何设置新活动的背景颜色

时间:2010-05-28 15:03:48

标签: android tabs

我正在切换标签点击活动并成功完成此操作。但是,在我的一个Activity类中,我正在执行以下操作:

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

main.xml具有以下内容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
        android:background="#BDBDBD">
</LinearLayout>

我只想更改此布局的背景,我希望标签显示为原样。但是使用main.xml中的当前android:layout_height="fill_parent",我的背景会覆盖标签,这意味着我无法看到标签。如果我做android:layout_height="wrap_content"我看不到任何改变,标签仍然是他们的。

请帮忙。


以下是一些信息..
screen2.xml

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

    <LinearLayout 
        android:id="@+id/LinearLayout01" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:orientation="vertical">

        <LinearLayout android:id="@+id/LinearLayout02" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:gravity="center">
            <TextView android:text="AcctId" 
                android:id="@+id/TextView01" 
                android:layout_width="50px" 
                android:layout_height="wrap_content"></TextView>
            <EditText 
                android:id="@+id/acctid" 
                android:layout_width="200px" 
                android:layout_height="wrap_content"></EditText>

        </LinearLayout>
        <LinearLayout android:id="@+id/LinearLayout03" 
            android:layout_width="fill_parent" 
            android:gravity="center"
            android:layout_height="wrap_content">
            <TextView android:text="Zip" 
                android:id="@+id/TextView02" 
                android:layout_width="50px" 
                android:layout_height="wrap_content">
            </TextView>
            <EditText 
                android:id="@+id/stid" 
                android:layout_width="200px" 
                android:layout_height="wrap_content">
            </EditText>
        </LinearLayout>
        <Button android:text="Login"
            android:layout_width="80px"
            android:layout_height="wrap_content"
            android:layout_gravity="center">
        </Button>
        <ImageView 
            android:layout_width="200px"
            android:layout_height="200px"
            android:src="@drawable/icon"
            android:layout_gravity="center">
        </ImageView>
    </LinearLayout>
</ScrollView>

screen1.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">

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#c6c3c6"
        android:layout_gravity="bottom"
        android:paddingTop="1dip"
        android:paddingLeft="1dip"
        android:paddingRight="1dip">

    <TabWidget
        android:layout_gravity="bottom"
        android:id="@android:id/tabs"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"/>
    </FrameLayout>
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    </FrameLayout>
</TabHost>  

MainActivity.java

public class onstarAndroidMain extends TabActivity {

    public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen1);
    addTabs();
    }

    private void addTabs(){
    Resources resources = getResources();

    TabHost tabs = (TabHost) findViewById(android.R.id.tabhost);
    tabs.setup();

    //tabspec defines the attributes of the tab
    TabSpec tab;


    tab = tabs.newTabSpec("Screen1");
    tab.setContent(new Intent(this, Screen1.class));
    tab.setIndicator("Screen1");
    tabs.addTab(tab);
    tabs.getTabWidget().getChildAt(0).getLayoutParams().height = 30;

    tab = tabs.newTabSpec("Screen2");
    tab.setContent(new Intent(this, Screen2.class));
    tab.setIndicator("Screen2");
    tabs.addTab(tab);
    tabs.getTabWidget().getChildAt(1).getLayoutParams().height = 30;

    tab = tabs.newTabSpec("Screen3");
    tab.setContent(new Intent(this, Screen3.class));
    tab.setIndicator("Screen3");
    tabs.addTab(tab);
    tabs.getTabWidget().getChildAt(2).getLayoutParams().height = 30;

    //sets the current tab
    tabs.setCurrentTab(0);
    //add the tabhost to the main content view

    }
}

Screen2.java

public class OnstarScreen2 extends Activity {

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.screen2);
}

现在,每当我点击screen2标签并尝试获取screen2.xml时,我的标签就会出现在screen2布局下方。我不知道该怎么办。基本上我想要实现的是,标签应始终位于底部,而不管它们上方显示的是什么视图。它们不应与其他任何东西重叠。

screen2.xml有一个scrollview,并且我有一个有一个登录表单的linearlayout ...但这个表单随时调用只是在标签上方...请帮助

1 个答案:

答案 0 :(得分:0)

您的标签出了问题。您是否只是在单击选项卡时启动新活动?然后,如果新的活动布局覆盖整个屏幕,那么选项卡将被覆盖。

请遵循以下指南: http://developer.android.com/intl/de/resources/tutorials/views/hello-tabwidget.html