Tuesday, June 19, 2012

Customized Tabs in android.


Hello friends, every one of us get a situation to make an application using Tabs, Some of use activities in place of tabs, Its generally become a large code,
This follows the simpler code for customized tabs.....

Create a new project and attach the below code in Activity file and create 2 more xml files in layout folder and name them as 1.tabhost.xml 2.tabs_bg.xml

package com.mahesh.android.tabs;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class CustomTabActivity extends Activity {
// private TabHost mTabHost;
//
// private void setupTabHost() {
//  mTabHost = (TabHost) findViewById(android.R.id.tabhost);
//  mTabHost.setup();
// }
 /** Called when the activity is first created. */
 @Override


  /////////////////////////////////////////////
  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   TabHost tabHost=(TabHost)findViewById(R.id.tabHost);
   tabHost.setup();
   TabSpec spec1=tabHost.newTabSpec("Tab 1");
   spec1.setContent(R.id.tab1);
   spec1.setIndicator("Tab 1");
   TabSpec spec2=tabHost.newTabSpec("Tab 2");
   spec2.setIndicator("Tab 2");
   spec2.setContent(R.id.tab2);
   TabSpec spec3=tabHost.newTabSpec("Tab 3");
   spec3.setIndicator("Tab 3");
   spec3.setContent(R.id.tab3);

   TabSpec spec4=tabHost.newTabSpec("Tab 4");
   spec4.setIndicator("Tab 4");
   spec4.setContent(R.id.tab4);

   tabHost.addTab(spec1);
   tabHost.addTab(spec2);
   tabHost.addTab(spec3);
   tabHost.addTab(spec4);
   }
  /////////////////////////////////////////////////////

}

Now we have a look in main.xml file
add this piece of code in your xml


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

<TabHost android:layout_width="fill_parent"

android:layout_height="fill_parent"
android:id="@+id/tabHost"

xmlns:android=http://schemas.android.com/apk/res/android>

<TabWidget

android:layout_width="fill_parent"

android:layout_height="match_parent"
android:id="@android:id/tabs"/>


<FrameLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@android:id/tabcontent">

<LinearLayout


android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/tab1"

android:orientation="vertical"

android:paddingTop="130px">


<TextView

android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab1"

android:id="@+id/txt1"/>

</LinearLayout>

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/tab2"

android:orientation="vertical"

android:paddingTop="130px">


<TextView
android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab 2"

android:id="@+id/txt2"/>

</LinearLayout>


<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/tab3"

android:orientation="vertical"
android:paddingTop="130px">


<TextView

android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab 3"

android:id="@+id/txt3"/>

</LinearLayout>

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/tab4"

android:orientation="vertical"

android:paddingTop="130px">


<TextView
android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab 4"

android:id="@+id/txt4"/>

</LinearLayout>

</FrameLayout>
</TabHost>

Now have a look on tabhost.xml file, heres the following code


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

<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent"

android:id="@+id/tabHost"

xmlns:android=http://schemas.android.com/apk/res/android>

<TabWidget
android:layout_width="fill_parent"

android:layout_height="wrap_content"
android:id="@android:id/tabs"/>

<FrameLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@android:id/tabcontent">

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/tab1"

android:orientation="vertical"

android:paddingTop="60px">

<TextView

android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab1"
android:id="@+id/txt1"/>

</LinearLayout>

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/tab2"

android:orientation="vertical"
android:paddingTop="60px">

<TextView

android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab 2"

android:id="@+id/txt2"/>

</LinearLayout>

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/tab3"

android:orientation="vertical"

android:paddingTop="60px">

<TextView

android:layout_width="fill_parent"

android:layout_height="100px"

android:text="This is tab 3"

android:id="@+id/txt3"/>

</LinearLayout>
</FrameLayout>
</TabHost>

and finally the last xml file tabs_bg.xml


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


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

android:id="@+id/tabsLayout" android:layout_width="fill_parent"

android:layout_height="fill_parent" android:background="@drawable/tab_bg_selector"

android:padding="10dip" android:gravity="center" android:orientation="vertical">

<TextView android:id="@+id/tabsText" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:text="Title"

android:textSize="15dip" android:textColor="@drawable/tab_text_selector" />


</
LinearLayout>