Skip to main content

Tabs at the bottom of TabActivity

Tabs at the bottom of TabActivity

By default tabs in Android are displayed at the top. It is a general guideline for android developers to keep the tabs at top of the Tabs based application since lot of Android mobiles are having their home, back,search buttons or touch interface at the bottom

But its purely our decision :)

There are two ways to achieve this.
  1. Using RelativeLayout
  2. Using "android:layout_weight" attibute
 1) Using RelativeLayout: .xml will look like the following.
<?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">
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <FrameLayout android:id="@android:id/tabcontent"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:layout_alignParentTop="true"
             android:layout_above="@android:id/tabs" />
    <TabWidget android:id="@android:id/tabs"
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_alignParentBottom="true" />
    </RelativeLayout>
</TabHost>

2)  Using "android:layout_weight" attibute
<?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">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_weight="1"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>
    </LinearLayout>
</TabHost>
  

I have  used both approaches in my application. It is working fine without any problem.

Comments

Anonymous said…
Thank you soo much..
Angel H. said…
Muchisimas Gracias!!!!
Unknown said…
This did not work when using "android.support.v4.app.FragmentTabHost" as a TabHost.
Arief Deok said…
thx.. its helpfully

Popular posts from this blog

How to access PC's internet from Android Emulator?

PC's Internet and Android emulator If PC's Internet connection is configured with manual proxy settings, Follow the below steps. 1) You can launch your Emulator from command line with DNS server detail.  Syntax : "emulator -dns-server <DNS Server IP address> "  Example: emulator -dns-server 8.8.8.8 (8.8.8.8 is Google's Public DNS Server)    (or)   Goto Eclipse->Window->Preferences->Android->Launch and give "-dns-server " and then launch your emulator. 2) In emulator goto " Settings->Wireless & Networks->Mobile Networks-> "       2.1) Ensure that " Data roaming " is checked.       2.2) Select Access Point Names       2.3) Select an APN. (eg. Telkila )       2.4) Manually set the Proxy Server and Port details. If PC's Internet connection is configured with Automatic proxy settings, Follow above steps except step 2.4  and ensure that No proxy server detail or port detail is

Why I have Quit my job?

Why I have Quit my job? A plain answer would be "I don't like to report when leadership fails". Five major reasons are there. Reason 1: "College Dream" It is always my dream to run a technology based firm. Reason 2: During my school days I have attempted to write code using OpenGL with no knowledge or limited knowledge on game programming. I love playing games and developing games. Reason 3: I would like to build an organic firm where leadership with vision will be the essence, people matters more and process matters less. Reason 4: I thought it would be the right the time to pitch in and build the world I have dreamt. Reason 5: Technology is a powerhouse and it should be used wherever improvement and inclusiveness is needed. So, to build businesses powered by technology that enhances wellbeing of people directly/indirectly. More updates on the way ... Follow @logickumar