2014-11-26 4 views
0

Эти коды работают правильно. Но My Query - это вкладки show on ActionBar, которые я хочу показать внутри макета или ниже ActionBar. Пожалуйста, помогите мне. Пожалуйста, помогите мне показать вкладку внутри макета.Как сделать вкладки в центре макета в android

класс MainActivity.java

public class MainActivity extends FragmentActivity { 
    ViewPager Tab; 
    TabPagerAdapter TabAdapter; 
    ActionBar actionBar; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     TabAdapter = new TabPagerAdapter(getSupportFragmentManager()); 
     Tab = (ViewPager)findViewById(R.id.pager); 
     Tab.setOnPageChangeListener(
       new ViewPager.SimpleOnPageChangeListener() { 
        @Override 
        public void onPageSelected(int position) { 
         actionBar = getActionBar(); 
         actionBar.setSelectedNavigationItem(position);     } 
       }); 
     Tab.setAdapter(TabAdapter); 
     actionBar = getActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     actionBar.setDisplayShowTitleEnabled(false); 
     ActionBar.TabListener tabListener = new ActionBar.TabListener(){ 
     @Override 
     public void onTabReselected(android.app.ActionBar.Tab tab, 
      FragmentTransaction ft) { 
     } 
     @Override 
     public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
       Tab.setCurrentItem(tab.getPosition()); 
      } 
     @Override 
     public void onTabUnselected(android.app.ActionBar.Tab tab, 
      FragmentTransaction ft) { 
     }}; 
     //Add New Tab 
     actionBar.addTab(actionBar.newTab().setText("Android").setTabListener(tabListener)); 
     actionBar.addTab(actionBar.newTab().setText("iOS").setTabListener(tabListener)); 
     actionBar.addTab(actionBar.newTab().setText("Windows").setTabListener(tabListener)); 
    } 
} 

класс TabPagerAdapter.java

public class TabPagerAdapter extends FragmentStatePagerAdapter { 
     public TabPagerAdapter(FragmentManager fm) { 
     super(fm); 
     } 
     @Override 
     public Fragment getItem(int i) { 
     switch (i) { 
      case 0: 
       return new Android(); 
      case 1: 
       return new Ios(); 
      case 2: 
       return new Windows(); 
      } 
     return null; 
     } 
     @Override 
     public int getCount() { 
     return 3; 
     } 
    } 

Ios.java, Android.java и класс Windows.java похожи код:

public class Ios extends Fragment { 
    @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      View ios = inflater.inflate(R.layout.ios_frag, container, false); 
      ((TextView)ios.findViewById(R.id.textView)).setText("iOS"); 
      return ios; 
    } 
    } 

activity_main .xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.view.ViewPager 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

android_frag.xml, ios_frag и windows_frag.xml похожи код:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="vertical" > 
    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="50sp"/> 
</LinearLayout> 

ответ

0

настраивая мою тему применения

В AndroidManifest.xml добавить андроида: тема недвижимости:

<application 
     android:label="@string/app_name" 
     android:icon="@drawable/ic_launcher" 
     android:theme="@style/CustomActionBarTheme"> 
    ... 

добавлено в темы.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <!-- the theme applied to the application or activity --> 
    <style name="CustomActionBarTheme" 
      parent="@android:style/Theme.Holo.Light.DarkActionBar"> 
     <item name="android:actionBarTabBarStyle">@style/MyActionBarTabBar</item> 
    </style> 

    <style name="MyActionBarTabBar"> 
     <item name="android:gravity">center</item> 
    </style> 
</resources> 

Теперь вкладки должны быть выровнены по центру.

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