2016-03-12 2 views
-2

В iOS функциональность нижней панели вкладок очень проста. Но в android я не могу реализовать эту функциональность. Моя идея такова. Панель вкладок содержит SMS, Call, Camera - 3 значка на панели вкладок. Всякий раз, когда краны этих значков, я хочу запустить SMS, телефонный звонок и камеру, установленные на моем устройстве Android. Но они должны быть такими же, как вкладка iOS View. (не должен быть полный экран) Я нашел решение в течение длительного времени, но я не могу найти правильный путь. Пожалуйста, помогите мне СпасибоВозможно ли реализовать функциональные возможности нижней панели вкладок, такие как iOS в android?

ответ

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) { 

     } 
    }); 
+0

Да, вы правы, но я думаю, что мы не можем показывать приложения, установленные на Android-устройстве. Я пытаюсь, но они показывают мне полный экран одновременно, панель вкладок не отображается. –

+0

Человек, которому нужно поместить намерения в каждом случае коммутатора, который запускает соответствующее приложение, которое вы хотите по конкретному намерению, это ответ на ваш вопрос, а не на то, что вам нужно уточнить свой вопрос о том, что вы хотите –

+0

Спасибо за ваш ответ , Но я уже пробовал. Тогда, могу я задать вам один вопрос? Можете ли вы запустить установленное приложение в LinearLayout? Я с нетерпением жду вашего ответа. Спасибо за вашу доброту. –

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> 

+0

Да, вы правы, но я думаю, что мы не можем показывать приложения, установленные на устройстве Android. Я пытаюсь, но они показывают мне полный экран одновременно, панель вкладок не отображается. –

0

Я реализовал, что ты говорил в одной моей apps..ill вывесить хт вскоре

<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 вы можете использовать виджет по умолчанию.

 Смежные вопросы

  • Нет связанных вопросов^_^