是否有可能在Android中实现像iOS这样的底部标签栏功能?

时间:2016-03-12 08:38:02

标签: android android-layout android-tabhost

在iOS中,底部标签栏功能非常基本。但在android中,我无法实现此功能。 我的想法如下。 标签栏包含短信,通话,相机 - 3个标签栏图标。 每当点击这个图标,我想在我的Android设备上安装短信,电话和相机。 但这些应该与iOS标签View相同。 (不应全屏) 我找了很长时间的解决方案,但我找不到正确的方法。 请帮我 感谢

3 个答案:

答案 0 :(得分:1)

把它放在XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/home_background_color"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.TabLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/white"
    app:tabPadding="10dp"
    android:minHeight="100dp"
    app:tabGravity="fill"
    app:tabIndicatorColor="@color/app_primary_color"
    app:tabMode="fixed"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

,这在代码中

 try
    {
        tabLayout.addTab(tabLayout.newTab());
        tabLayout.addTab(tabLayout.newTab());
        tabLayout.addTab(tabLayout.newTab());
        tabLayout.addTab(tabLayout.newTab());
        tabLayout.getTabAt(0).setIcon(R.drawable.tab_icon1);
        tabLayout.getTabAt(1).setIcon(R.drawable.tab_icon2);
        tabLayout.getTabAt(2).setIcon(R.drawable.tab_icon3);
        tabLayout.getTabAt(3).setIcon(R.drawable.tab_icon4);
    }
    catch (Exception e)
    {
        Log.e("TabLayout Creation Error",e.getMessage());
    }



    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
switch(tabLayout.getSelectedTabPosition())
    {
    case 0:

break;
        case 1:
//Do the stuff
break;
        case 2:
//Do the stuff
break;
        case 3:
//Do the stuff
break;
        }
     }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });

答案 1 :(得分:0)

是的,标签栏可能在底部 试试这个

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        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="fill_parent" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:divider="@drawable/bg_tab_seperator"
            android:dividerPadding="0dp" />
    </RelativeLayout>
</TabHost>

答案 2 :(得分:0)

我已经在我的应用程序中实现了你所说的内容......很快就会发布xm

    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <android.support.v4.view.ViewPager    
                android:id="@+id/viewpager"    
                android:layout_width="match_parent"    
                android:layout_height="match_parent"    
                android:layout_alignParentTop="true"    
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                android:layout_above="@+id/app_bar"/>

            <android.support.design.widget.AppBarLayout    
                android:id="@+id/app_bar"    
                android:layout_width="match_parent"    
                android:layout_height="wrap_content"    
                android:layout_alignParentBottom="true"    
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                android:background="@color/background"
                >

                <com.****.****.ui.custom.IconTextTabLayout    
                    android:id="@+id/tabs"    
                    android:layout_width="match_parent"    
                    android:layout_height="@dimen/custom_tab_layout_height"
                    app:tabGravity="fill"
                    app:tabMode="fixed" />
            </android.support.design.widget.AppBarLayout>
</RelativeLayout>

我的<com.****.****.ui.custom.IconTextTabLayout只是一个扩展TabLayout的类,您可以使用默认小部件。