Android Vertical tabhost - android

i want to built a vertical Tab host like the below image
i tried with the following code but the tabs are not visible
getTabWidget().setOrientation(LinearLayout.VERTICAL);
is it possible to implement tab host like below.if possible tell me the way to implement tab host like below.and also post the links if there are any built in project's to implement it like the below Image.
(or)
is it possible to add an activity to image view click similar to tab bar click like below
mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1").setContent(R.id.textview1));
because if it is possible i will put image views and change the activities on each item click
Help me out in making the vertical tab-host.

You just need to place your tab Widget in a horizontal LinearLayout in your XML file:
<TabHost
android:id="#android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="#+id/imageView3" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<FrameLayout
android:id="#android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0"/>
<android.support.v4.view.ViewPager
android:id="#+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" >
</android.support.v4.view.ViewPager>
<TabWidget
android:id="#android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical">
</TabWidget>
</LinearLayout>
</TabHost>
this will place the tabs to the right of the content, if you want it to the left you need to rearrange the order in the XML file.

Better use fragments. Make a layout with vertically aligned buttons and use fragments for transition of pages on button click. Refer this to know more about fragments.

Just to complement Emil Adz answer.
When you add the control to the layout using the graphic tool, this adds all the code necessary for it, but it misses android:orientation="vertical" for every LinerLyout.
Example:
<LinearLayout
android:id="#+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</LinearLayout>
You have to type it down yourself
<LinearLayout
android:id="#+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>

Related

Customizing LineIndicator of ViewPagerIndicator

I am new to ViewPagerIndicator. I am using LineIndicator along with my ViewPager. The default look is tiny blue lines wherever you position them.
However, if I want to, say, change the color and the width and height, how would I do that?
Update
If you look at the sample phones shown, the one in the center has red lines at the bottom. The title of the app says "Line / Styled (via layout)". That is what I am trying to achieve.
You just need to style your LinePageIndicator in your .xml layout file.
EX:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:id="#+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<com.viewpagerindicator.LinePageIndicator
android:id="#+id/indicator"
android:padding="5dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
app:strokeWidth="4dp"
app:lineWidth="30dp"
app:unselectedColor="#FF888888"
app:selectedColor="#FF880000"
/>
</LinearLayout>

Android - ViewPager: Tabs with fixed positions

I'm using ViewPager to create a tab layout. It works ok but I want to change it's behavior a bit. When I swipe to a new tab it's title is moved to the center of the width forcing the titles of the other tabs to look kind of compressed. I want all tab titles to remain in a fixed position. I tried modifying the layout a little but I didn't get anywhere... How can I achieve this?
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.viewpagerindicator.TitlePageIndicator
android:id="#+id/indicator"
android:padding="10dip"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="#000000"
android:textColor="#2FB3E3"
app:footerColor="#2FB3E3"
app:footerLineHeight="1dp"
app:footerIndicatorHeight="3dp"
app:footerIndicatorStyle="underline"
app:selectedColor="#FFFFFF"
app:selectedBold="true"
/>
<com.bill.deuterh.NoSwipeViewPager
android:id="#+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
</LinearLayout>
Why don't you use a fragment instead of declaring all in xml? In java file you can have more flexibily, and fragments can be reused..
For a complete example using fragment, you can read here: http://developer.android.com/reference/android/support/v4/view/ViewPager.html

tab widget text below the tab

i am new to android and had create the tabhost with two tabwidget all thing goes ok and fine and now i am displaying two different activity with two tab also.but the question is the text which i am specifying for two different tab is coming below while running the app.Below i am putting the screenshot for understanding
Screenshot:
the text are mark as red so is there any way to align that text to the center.
one more thing i m also using the drawable image for different state of user click.
thanks for any help.
the xml file for the tabhost
<?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"
>
<include layout="#layout/top_portion_layout"/>
<TabWidget
android:id="#android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
>
</TabWidget>
<FrameLayout
android:id="#android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#808080">
</FrameLayout>
</LinearLayout>
</TabHost>
the portion is another layout which having two button sync all and home
which i am including in this layout
inspite of
android:textAlignment="center"
you should use
android:gravity="center"
android:layout_gravity="center_vertical"
inside tab_host element

how to set tab bar like the one given in image

i m trying to set the tabbar like the one given in the figure
here is my xml file `
<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:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<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="match_parent"
android:layout_height="30sp"
android:layout_marginBottom="40sp"
android:layout_marginLeft="70sp"
android:layout_marginRight="70sp"
android:layout_weight="0"
android:background="#drawable/rounded_corners_white_bg"
android:tabStripEnabled="false" >
</TabWidget>
</LinearLayout>
</TabHost>`
by setting left, right and bottom margins i've got this uptill now.
in this figure the tabbar is shown at the bottom with BLACK background color that's wht i don't want.
because of it's black background color my activity's content are not visible
can anyone help me???????????
I tried your layout file its giving space left side,right side and bottom. here its working fine. Are you using any other layout out side..?or may be due to your #drawable/rounded_corners_white_bg. in background take any other color like "#cd9089".

Tab Host Issue in android

I want to display a tab at bottom of screen , so i use
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="5dp" >
<FrameLayout
android:id="#android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
</FrameLayout>
<TabWidget
android:id="#android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="#android:id/tabcontent" />
</RelativeLayout>
</TabHost>
but also want to display a button below tab widget . At bottom of screen , we have a button and a tab widget which is above button but should be at bottom of screen .
There is any way for doing it.
Please suggest me usable link or sample code.
use linear-layout and put the tabhost and button in it
I am not sure but take one Linear or Relative Layout.
Put TabHost first and then put a button in that new Layout below TabHost.
I have not used it but I think it will work

Categories

Resources