Android标签布局setContent

前端之家收集整理的这篇文章主要介绍了Android标签布局setContent前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个带有标签布局的 Android应用程序.我已经把它带到了它不会产生像 Google’s tutorial suggested这样的新活动的地方,但是我只是为了在点击每个标签显示我的内容.目前它只显示黑色,无论哪个标签处于活动状态.

以下是我最新迭代中的代码

Main.java

public class Main extends TabActivity {
    /** Called when the activity is first created. */

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

        Resources res = getResources();
        TabHost tabHost = getTabHost();
        TabHost.TabSpec spec;

        // add orders tab
        spec = tabHost.newTabSpec("orders").setIndicator("Orders",res.getDrawable(R.drawable.flash_36))
                          .setContent(R.id.ordersLayout);
        tabHost.addTab(spec);

        // add positions tab
        spec = tabHost.newTabSpec("positions").setIndicator("Positions",res.getDrawable(R.drawable.small_tiles_36))
                          .setContent(R.id.positionsLayout);
        tabHost.addTab(spec);

        // add strategies tab
        spec = tabHost.newTabSpec("strategies").setIndicator("Strategies",res.getDrawable(R.drawable.cards_36))
                          .setContent(R.id.strategiesLayout);
        tabHost.addTab(spec);

        // add account tab
        spec = tabHost.newTabSpec("account").setIndicator("Account",res.getDrawable(R.drawable.seal_36))
                          .setContent(R.id.accountLayout);
        tabHost.addTab(spec);

        tabHost.setCurrentTab(1);
    }

}

main.xml中

<?xml version="1.0" encoding="utf-8"?>


<TabHost    android:id="@android:id/tabhost" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            xmlns:android="http://schemas.android.com/apk/res/android">

            <LinearLayout   android:id="@+id/mainLayout" 
                            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">
                </TabWidget>

                <FrameLayout android:id="@android:id/tabcontent" 
                            android:layout_width="fill_parent" 
                            android:layout_height="fill_parent"
                            android:background="#fff"
                            android:padding="5dp">

                            <include layout="@layout/orders"/>
                            <include layout="@layout/positions"/>
                            <include layout="@layout/strategies"/>
                            <include layout="@layout/account"/>

                </FrameLayout>

            </LinearLayout>

</TabHost>

Account.xml在

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
    android:id="@+id/accountLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#fff"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView 
        android:text="Account Information" 
        android:id="@+id/accountLabel" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">

    </TextView>

</LinearLayout>

orders.xml中

我只包括这两个,它们与LinearLayout的android:id参数的相应ID完全相同.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 
    android:id="@+id/ordersLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#fff"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView 
        android:text="Working Orders" 
        android:id="@+id/ordersLabel" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">

    </TextView>

</LinearLayout>

这是我在标签之间切换时获得的屏幕截图:

订单标签

位置标签

这对于模拟器和我刚刚获得的三星Galaxy都是如此,我强烈推荐的方式,任何想法?

解决方法

我想通了,它是main.xml文件的一个简单参数:

Main.xml(修订版)

<?xml version="1.0" encoding="utf-8"?>


<TabHost    android:id="@android:id/tabhost" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent"
            xmlns:android="http://schemas.android.com/apk/res/android">

            <LinearLayout   android:id="@+id/mainLayout" 
                            android:layout_width="fill_parent" 
                            android:layout_height="fill_parent"
                            android:orientation="vertical"
                            android:padding="5dp">

                <TabWidget  android:id="@android:id/tabs" 
                            android:layout_width="fill_parent" 
                            android:layout_height="wrap_content">
                </TabWidget>

                <FrameLayout android:id="@android:id/tabcontent" 
                            android:layout_width="fill_parent" 
                            android:layout_height="fill_parent"
                            android:background="#fff"
                            android:padding="5dp">

                            <include layout="@layout/orders"/>
                            <include layout="@layout/positions"/>
                            <include layout="@layout/strategies"/>
                            <include layout="@layout/account"/>

                </FrameLayout>

            </LinearLayout>

</TabHost>

注意LinearLayout,它现在包含参数android:orientation.它之前做的是将屏幕上的所有其他内容推向右侧.现在它可以正常工作.

注意:明天在办公室,我可以测试是否仍允许我旋转手机并使其以横向方向正确显示.如果没有,那么我可能不得不为水平创建一个单独的xml文件,除非有人对此有所了解.

猜你在找的Android相关文章