无法将我的tabhost对齐到底部

时间:2015-12-18 22:39:08

标签: android android-tabhost

我正在寻找一些例子但是当我添加到我的xml时它没有用。有人可以帮帮我。

这是我的xml tabhost

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp"
        android:gravity="bottom">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_gravity="bottom"/>

    </LinearLayout>
</TabHost> 

这是带有图像视图和文本视图的标签指示器。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="45dp"
    android:layout_weight="1"
    android:gravity="center">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:id="@+id/img_tabhost" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/img_tabhost"
        android:textSize="15sp"
        android:id="@+id/tv_tabhost" />

</RelativeLayout> 

这是我上班的课程

private TabHost tabHost;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    tabHost = getTabHost();

    String tabName = "";
    addTab(tabName, R.drawable.ic_home);
    addTab(tabName, R.drawable.ic_search);
    addTab(tabName, R.drawable.ic_notification);
    addTab(tabName, R.drawable.ic_profile);

}

private void addTab(String label, int drawableId){
    Intent intent = new Intent();

    switch (drawableId){
        case R.drawable.ic_home:
            //label = "Home";
            intent = new Intent(this, Map.class);
            break;
        case R.drawable.ic_search:
            //label = "Search";
            intent = new Intent(this, Search.class);
            break;
        case R.drawable.ic_notification:
            //label = "Notifications";
            intent = new Intent(this, Notifications.class);
            break;
        case R.drawable.ic_profile:
            //label = "Profile";
            intent = new Intent(this, Profile.class);
            break;

    }

        // Create the tab hosts
        TabHost.TabSpec spec = this.getTabHost().newTabSpec(label);

        View tabIndicator = LayoutInflater.from(this).inflate(
                R.layout.tab_indicator, getTabWidget(), false);
        TextView title = (TextView) tabIndicator.findViewById(R.id.tv_tabhost);
        title.setText(label);
        ImageView icon = (ImageView) tabIndicator.findViewById(R.id.img_tabhost);
        icon.setImageResource(drawableId);

        spec.setContent(intent);
        spec.setIndicator(tabIndicator);
        tabHost.addTab(spec);

}  

有人可以帮我在底部设置我的tabhost。

android:layout_alignParentBottom:true    

不起作用

1 个答案:

答案 0 :(得分:0)

要设置android:layout_alignParentBottom属性,您必须使用RelativeLayout代替LinearLayout。因此,您的xml应如下所示:

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

    <RelativeLayout
        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"
            android:layout_marginBottom="5dp"
            android:layout_alignParentBottom="true"/> <!-- now you can use it -->

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
    </RelativeLayout>
</TabHost>