2013-11-03 3 views
0

В моем приложении Android я реализовал компоновку вкладок с простыми видами. Вот мой MainActivity класс:Добавление вкладок под панелью действий

import android.app.ActionBar; 
import android.app.ActionBar.Tab; 
import android.app.FragmentTransaction; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.view.ViewPager; 


public class CustomerComplainActivity extends FragmentActivity implements ActionBar.TabListener { 

private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private ActionBar actionBar; 
private String[] tabs = { "New Complain", "Previous Complains" }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Initialization 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    actionBar = getActionBar(); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

    viewPager.setAdapter(mAdapter); 
    //actionBar.setDisplayHomeAsUpEnabled(false); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 





    // Adding Tabs 
    for (String tab_name : tabs) { 
     actionBar.addTab(actionBar.newTab().setText(tab_name) 
       .setTabListener(this)); 
    } 

    /** 
    * on swiping the viewpager make respective tab selected 
    * */ 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 
      // on changing the page 
      // make respected tab selected 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 
    }); 
} 

@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
} 

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // on tab selected 
    // show respected fragment view 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
} 

}

И это мой класс TabPager адаптер:

import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 

public class TabsPagerAdapter extends FragmentPagerAdapter { 

public TabsPagerAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int index) { 

    switch (index) { 
    case 0: 
     // Top Rated fragment activity 
     return new NewComplain(); 
    case 1: 
     return new PreviousComplains(); 
    } 

    return null; 
} 

@Override 
public int getCount() { 
    // get item count - equal to number of tabs 
    return 2; 
} 

}

Это мой файл activity_main.xml.

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/pager" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".AdminMainActivity" > 

<android.support.v4.view.PagerTitleStrip 
    android:id="@+id/pager_title_strip" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="top" 
    android:background="#800000" 
    android:paddingBottom="4dp" 
    android:paddingTop="5dp" 
    android:textColor="#fff" 
    android:textSize="18dp" /> 

Это работает, но проблема заключается в закладки добавляют в actiob бар в следующем.

enter image description here

Но я хочу, чтобы добавить эти вкладки ниже панели действий. Я был бы очень признателен, если бы кто-нибудь из вас был настолько любезен, чтобы объяснить, как я могу решить эту проблему.

Thanx заранее

+0

Это поведение по умолчанию, когда вы используете панель действий с 'ActionBar.NAVIGATION_MODE_TABS'. Вам придется искать различные решения, т. Е. Не использовать вкладки для панели действий. – Szymon

+0

Но я следил за [это] (http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/). Он работает отлично. Но когда я использую его в своем приложении, это не так. – Rose18

+0

На каком устройстве вы его тестируете? Или на эмуляторе? Обычное поведение: если есть достаточно места (на планшетах или в ландшафтном режиме), вкладки отображаются в панели действий. В противном случае они отображаются под панелью действий. – Szymon

ответ

1

У меня такой же выпуск. Я нашел решение, заменив эту строку

actionBar.setHomeButtonEnabled(false); 

с

и ваша проблема решена.

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