crocboy
crocboy

Reputation: 414

Android 4.0 Tabbed Activity Layout

I have 2-3 Activities in my app that all share data in a memory pool. I want to be able to easily switch between these activities while keeping them all simultaneously running. In addition, I am developing for Android 4.0. I would like to use TabActivity, but it has been deprecated and replaced with ActionBar, which I have tried but I don't think it's what I'm looking for. I want large tabs, similar to the classic "Artist/Playlist/All" tabs found in the stock Android Music Application, or like the Tab Bar seen at the bottom of the screenshot below. Does anyone know of a library to create these tabs or a way to make ActionBar more customizable? Or is using TabActivity a perfectly good solution, even on ICS devices?

enter image description here

Upvotes: 1

Views: 3128

Answers (3)

0gravity
0gravity

Reputation: 2762

You have probably found an answer by now, but I thought I'll share another way you could create something like that tab bar using images and xml:

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

    <LinearLayout 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"        
        android:orientation="horizontal"
        android:background="@drawable/tabackground"
        android:layout_alignParentBottom="true"
        android:id="@+id/llBottom">

        <ImageButton 
            android:src="@drawable/icon2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00000000"
            />

        <ImageButton 
            android:src="@drawable/icon3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00000000"
            />

        <ImageButton 
            android:src="@drawable/icon4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00000000"
            />

        <ImageButton 
            android:src="@drawable/icon5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00000000"
            />        


    </LinearLayout>

    <ImageView         
        android:layout_height="24dp"
        android:layout_width="fill_parent"
        android:layout_alignTop="@+id/llBottom"       
        android:background="#10ffffff"/>

    <ImageView         
        android:layout_height="1dp"
        android:layout_width="fill_parent"
        android:layout_alignTop="@+id/llBottom"       
        android:background="#30ffffff"/>

</RelativeLayout>

enter image description here

Is not perfect but with some creativity and changing some values it can look very good.

Hope it helps in some way.

Upvotes: 1

Alexander Lucas
Alexander Lucas

Reputation: 22371

There are several subquestions to this, I'll try to address them all:

-In order to use the top tabs, you want to use an ActionBar.

-If you were to do it in the style of the music app, where you swipe sideways between views and the label of the current one is always front and center... For that, the class you'd want to use is called ViewPager

You can see all of these methods by creating a new Activity in eclipse, and going through the wizard. Under "Navigation Type" you can select "Tabs", "Tabs + Swipe", "Swipe Views + Title Strip". Create any one of those Activities to see how it looks, and then look at the code to see how it's implemented & how to customize it.

-Navigation along the bottom is discouraged- See the Android Design Guide, spec the section "Don't use Bottom Tab Bars"

Upvotes: 1

Steven Schoen
Steven Schoen

Reputation: 4386

ActionBar is what you're looking for, actually.

You should convert your Activites to Fragments. Assuming they're not too complex, this shouldn't be hard at all. There are tons of examples out there. You need one Activity, preferably a FragmentActivity, to hold all of them.

This should help:

http://arvid-g.de/12/android-4-actionbar-with-tabs-example

Upvotes: 1

Related Questions