Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android how can i replace the deprecated tabhost?

I'm going to create an application which is designed to use Tabhost, but as I know it's been deprecated. So my question is should I use Tabhost anyway or how can I replace it..by using buttons instead of them declared in every xml or any other suggestions?

like image 489
Android-Droid Avatar asked Apr 24 '12 11:04

Android-Droid


3 Answers

"Deprecated" in Android means "we think there is a better solution that you should investigate". Rarely does "deprecated" mean "it is unusable". TabHost, AFAIK, works fine on Android 4.0.

That being said, I would recommend considering switching to tabs in the action bar, using ActionBarSherlock to give you backwards compatibility to Android 2.1.

UPDATE

Besides, TabHost is not deprecated. TabActivity is deprecated. You can still use TabHost, with views for your tabs. Or, use:

  • ViewPager with a tabbed indicator, like PagerTabStrip
  • FragmentTabHost, for a TabHost that uses fragments for tabs

The action bar also has tab support, but that was deprecated starting with the "L" Developer Preview.

like image 136
CommonsWare Avatar answered Nov 10 '22 12:11

CommonsWare


As per Android API level-18, ActionBarSherlock is not recommended instead of that,they have introduced ActionBarCompat .. Better to go with ActionBarCompat.

Thank you.

like image 38
Gowtham Kumar Avatar answered Nov 10 '22 13:11

Gowtham Kumar


TabHost was deprecated in API level 30. You can use material TabLayout and ViewPager instead of TabHost:

<com.google.android.material.tabs.TabLayout
            android:id="@+id/tablayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabGravity="center"
            app:tabIndicatorColor="@color/colorPrimary"
            app:tabIndicatorHeight="2dp"
            app:tabMode="fixed"
            app:tabSelectedTextColor="@color/colorPrimary"
            app:tabTextAppearance="@style/MapTabTextStyle"
            app:tabTextColor="@color/black" />

code:

tablayout.addTab(tablayout.newTab().setText("Tab1"))
tablayout.addTab(tablayout.newTab().setText("Tab2"))
tablayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
        override fun onTabReselected(tab: TabLayout.Tab?) {

        }

        override fun onTabUnselected(tab: TabLayout.Tab?) {
            
        }

        override fun onTabSelected(tab: TabLayout.Tab?) {
            // do something
        }

    })
like image 25
Kuvonchbek Yakubov Avatar answered Nov 10 '22 12:11

Kuvonchbek Yakubov