Sherlock 라이브러리를 사용하여 ActionBar를 사용하고 있습니다. 이 앱에서도 탭을 구현했습니다.Sherlock Library를 사용하여 ActionBar에 탐색 목록을 추가 할 때 탭이 Android에 표시되지 않습니까?
이제 ActionBar에서 NavigationList를 사용할 때 Tab 조각이 손실되었습니다. 액션 바에서 ListNavigation을 사용하기 위해 내가 사용하고 있습니다 :
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
&을 내가 탭하지만 목록 mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
을 사용하던이 전.
지금, 나는 모두를 사용하려면, NavigationList
및 Tab Fragments
public class MainActivity extends SherlockFragmentActivity implements OnNavigationListener {
ActionBar mActionBar;
ViewPager mPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/** Getting a reference to action bar of this activity */
mActionBar = getSupportActionBar();
/** Set tab navigation mode */
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
//mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(
this,
R.array.locations,
android.R.layout.simple_spinner_item);
mActionBar.setListNavigationCallbacks(mSpinnerAdapter, this);
mActionBar.setIcon(R.drawable.app_icon);
/** Getting a reference to ViewPager from the layout */
mPager = (ViewPager) findViewById(R.id.pager);
/** Getting a reference to FragmentManager */
FragmentManager fm = getSupportFragmentManager();
/** Defining a listener for pageChange */
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener(){
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
mActionBar.setSelectedNavigationItem(position);
}
};
/** Setting the pageChange listner to the viewPager */
mPager.setOnPageChangeListener(pageChangeListener);
/** Creating an instance of FragmentPagerAdapter */
MyFragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);
/** Setting the FragmentPagerAdapter object to the viewPager object */
mPager.setAdapter(fragmentPagerAdapter);
mActionBar.setDisplayShowTitleEnabled(true);
/** Defining tab listener */
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
};
/** Creating Android Tab */
Tab tab = mActionBar.newTab()
.setText("Android")
.setIcon(R.drawable.android)
.setTabListener(tabListener);
mActionBar.addTab(tab);
/** Creating Apple Tab */
tab = mActionBar.newTab()
.setText("Apple")
.setIcon(R.drawable.apple)
.setTabListener(tabListener);
mActionBar.addTab(tab);
}
}
MyFragmentPagerAdapter.java
public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
final int PAGE_COUNT = 2;
/** Constructor of the class */
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
/** This method will be invoked when a page is requested to create */
@Override
public Fragment getItem(int arg0) {
Bundle data = new Bundle();
switch(arg0){
/** Android tab is selected */
case 0:
AndroidFragment androidFragment = new AndroidFragment();
data.putInt("current_page", arg0+1);
androidFragment.setArguments(data);
return androidFragment;
/** Apple tab is selected */
case 1:
AppleFragment appleFragment = new AppleFragment();
data.putInt("current_page", arg0+1);
appleFragment.setArguments(data);
return appleFragment;
}
return null;
}
/** Returns the number of pages */
@Override
public int getCount() {
return PAGE_COUNT;
}
}
그리고 다른 두 클래스 : 1) public class AppleFragment extends SherlockListFragment
2) public class AndroidFragment extends SherlockListFragment
ActionBar에 목록을 추가 할 때 내 탭을 잃어 버리는 이유를 제안 해주십시오.
귀하의 우려를 이해하지 못했습니다 ....이 설명해 주시겠습니까 –
동시에 둘 다 사용할 수 없습니다. –