Search code examples
androidandroid-custom-view

Custom Title bar not coming above TabHost in android


I am trying to set Custom Bar above Tabhost. But it won't come. I don't want to use "requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);" reason being i want to use same code in all my screens. And in all other screens it comes perfect except this screen which has tabhost. Any reason ?

Code for TitleBar :

<RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/windowtitle"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:background="#0a2436"
                android:gravity="center_horizontal|center_vertical"
                android:paddingBottom="10dip"
                android:paddingTop="10dip"
                android:src="@drawable/logo">
            </ImageView>

            <ImageButton
                android:id="@+id/syncbutton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginTop="3dip"
                android:background="@android:color/transparent"
                android:src="@drawable/sync" 
                android:gravity="center"
                android:text="Sync" />
        </RelativeLayout>

Full Code :

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/windowtitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="#0a2436"
            android:gravity="center_horizontal|center_vertical"
            android:paddingBottom="10dip"
            android:paddingTop="10dip"
            android:src="@drawable/logo">
        </ImageView>

        <ImageButton
            android:id="@+id/syncbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginTop="3dip"
            android:background="@android:color/transparent"
            android:src="@drawable/sync" 
            android:gravity="center"
            android:text="Sync" />
    </RelativeLayout>

    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp" >

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

            <View
                android:id="@+id/separator"
                android:layout_width="fill_parent"
                android:layout_height="2dip"
                android:layout_below="@android:id/tabs" />

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_above="@+id/btnSend"
                android:layout_below="@+id/separator"
                android:paddingBottom="45dip" >

                <!-- Scrollview for message data -->

                <ScrollView
                    android:id="@+id/formTab"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:scrollbars="vertical" >

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

                        <View
                            android:layout_width="fill_parent"
                            android:layout_height="5dip" />
                    </LinearLayout>
                </ScrollView>
            </FrameLayout>
        </RelativeLayout>
    </TabHost>

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
        android:gravity="bottom"
        android:stretchColumns="*" >

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >

            <Button
                android:id="@+id/home"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="#092435"
                android:gravity="center"
                android:padding="15dip"
                android:text="Activity"
                android:textColor="#ffffff" />

            <Button
                android:id="@+id/status"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="#092435"
                android:gravity="center"
                android:padding="15dip"
                android:text="Support"
                android:textColor="#ffffff" />

            <Button
                android:id="@+id/support"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="#092435"
                android:gravity="center"
                android:padding="15dip"
                android:text="Messages"
                android:textColor="#ffffff" />
        </TableRow>
    </TableLayout>

</RelativeLayout>

Regards


Solution

  • Change you layout to this...because you need to relate your tabhost with the title layout

    add android:layout_below attribute to the tabhost

    <RelativeLayout
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >
    
        <ImageView
            android:id="@+id/windowtitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="#0a2436"
            android:gravity="center_horizontal|center_vertical"
            android:paddingBottom="10dip"
            android:paddingTop="10dip"
            android:src="@drawable/ic_launcher" >
        </ImageView>
    
        <ImageButton
            android:id="@+id/syncbutton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginTop="3dip"
            android:background="@android:color/transparent"
            android:gravity="center"
            android:src="@drawable/ic_launcher"
            android:text="Sync" />
    </RelativeLayout>
    
    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/title" >
    
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp" >
    
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true" />
    
            <View
                android:id="@+id/separator"
                android:layout_width="fill_parent"
                android:layout_height="2dip"
                android:layout_below="@android:id/tabs" />
    
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_above="@+id/btnSend"
                android:layout_below="@+id/separator"
                android:paddingBottom="45dip" >
    
                <!-- Scrollview for message data -->
    
                <ScrollView
                    android:id="@+id/formTab"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:scrollbars="vertical" >
    
                    <LinearLayout
                        android:id="@+id/formLayout"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical" >
    
                        <View
                            android:layout_width="fill_parent"
                            android:layout_height="5dip" />
                    </LinearLayout>
                </ScrollView>
            </FrameLayout>
        </RelativeLayout>
    </TabHost>
    
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
        android:gravity="bottom"
        android:stretchColumns="*" >
    
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >
    
            <Button
                android:id="@+id/home"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="#092435"
                android:gravity="center"
                android:padding="15dip"
                android:text="Activity"
                android:textColor="#ffffff" />
    
            <Button
                android:id="@+id/status"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="#092435"
                android:gravity="center"
                android:padding="15dip"
                android:text="Support"
                android:textColor="#ffffff" />
    
            <Button
                android:id="@+id/support"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="#092435"
                android:gravity="center"
                android:padding="15dip"
                android:text="Messages"
                android:textColor="#ffffff" />
        </TableRow>
    </TableLayout>
    
    </RelativeLayout>