Android
Android

Reputation: 9023

android tabwidget

i need to create tab in my application i've used the following working good... but i need it to display as tabs look into the iphone how it can possible it using android 1.6? thanks in advance..

<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:id="@+id/tab"    android:orientation="vertical"        android:layout_width="fill_parent"   android:layout_height="fill_parent">
    <TabWidget
        android:id="@android:id/tabs"    android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <FrameLayout
        android:id="@android:id/tabcontent"            android:layout_width="fill_parent"     android:layout_height="fill_parent">

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

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

here is my tab looks like..
but,i need to remove the space between them i want it look like this

Query 2 if i am using intent to switch between 2 activities.. the 2nd activity need oncreate method is it it compulsory?

Upvotes: 1

Views: 1509

Answers (2)

Android
Android

Reputation: 9023

tab.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@drawable/tab_background_selector" android:gravity="center"
android:orientation="vertical" android:padding="5dp">
<ImageView android:id="@+id/tab_icon" android:layout_width="30dp"
    android:layout_height="30dp" android:scaleType="fitCenter" />
<TextView android:id="@+id/tab_text" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:singleLine="true"
    android:textStyle="bold" android:gravity="center_horizontal"
    android:textSize="10sp" android:padding="3dip" android:ellipsize="marquee"
    android:textColor="@drawable/tab_text_selector" />

main.xml

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:layout_alignParentBottom="true">
    <TabHost 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">
            <HorizontalScrollView android:scrollbars="none"
                android:layout_width="fill_parent" android:layout_height="wrap_content">
                <TabWidget android:id="@android:id/tabs" 
                android:layout_alignParentBottom="true"
                    android:layout_width="fill_parent" android:layout_height="wrap_content" />
            </HorizontalScrollView>
            <FrameLayout android:id="@android:id/tabcontent"
                android:layout_width="fill_parent" android:layout_height="fill_parent"
                android:padding="5dp" />
        </LinearLayout>
    </TabHost>
</LinearLayout> 

TestActivity.java

setContentView(R.layout.maiin);  
         final TabHost tabHost = (TabHost) getTabHost();
            tabHost.addTab(createTab(MobiintheMorningActivity.class, 
                    "Welcome", "Welcome", R.drawable.icon));
            tabHost.addTab(createTab(SongList.class, 
                    ".Mp3List", ".Mp3List", R.drawable.icon));
            tabHost.addTab(createTab(AboutUs.class, 
                    "AboutUs", "AboutUs", R.drawable.icon));
            tabHost.addTab(createTab(ExtraInfromation.class, 
                    "Extra", "Extra", R.drawable.icon));


            tabHost.setCurrentTab(0);
            tabHost.getTabWidget().getChildAt(0).getLayoutParams().width = 85;
            tabHost.getTabWidget().getChildAt(1).getLayoutParams().width = 85;
            tabHost.getTabWidget().getChildAt(2).getLayoutParams().width = 85;
            tabHost.getTabWidget().getChildAt(3).getLayoutParams().width = 85;        
        }
        private TabSpec createTab(final Class<?> intentClass, final String tag, 
                final String title, final int drawable)
        {
            final Intent intent = new Intent().setClass(this, intentClass);

            final View tab = LayoutInflater.from(getTabHost().getContext()).
                inflate(R.layout.tab, null);
            ((TextView)tab.findViewById(R.id.tab_text)).setText(title);
            ((ImageView)tab.findViewById(R.id.tab_icon)).setImageResource(drawable);

            return getTabHost().newTabSpec(tag).setIndicator(tab).setContent(intent);
        }
    }

This is complete working code :Pragna

Upvotes: 2

Sumant
Sumant

Reputation: 2795

<?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="wrap_content"
                    android:layout_height="wrap_content">

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

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

    </LinearLayout>

</TabHost>

Use this it will give you look that u r intersted

Upvotes: 0

Related Questions