2014-11-04 3 views
1

가이드에 따라를 프로젝트에 추가했지만 탭 아래의 스트립이 슬라이드되지 않습니다 (참조할만한 것이 있습니다. Google Play 앱).Astuetz의 PagerSlidingTabStrip 라이브러리가 여전히 tabStrip을 슬라이드하지 않습니다.

mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mCollectionPagerAdapter); 

    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
    tabs.setViewPager(mViewPager); 
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 

     @Override 

     public void onPageSelected(int position) { 
      actionBar.setSelectedNavigationItem(position); 
     } 

    }); 
    for (int i = 0; i < mCollectionPagerAdapter.getCount(); i++) { 
     actionBar.addTab(actionBar.newTab() 
       .setText(mCollectionPagerAdapter.getPageTitle(i)) 
       .setTabListener(this)); 

    } 

편집 :

activity_main.xml :

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

<com.astuetz.PagerSlidingTabStrip 
    android:id="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="48dip"/> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context=".MainActivity" /> 

</RelativeLayout> 

MainActivity :

public class MainActivity extends FragmentActivity implements 
    ActionBar.TabListener, android.app.ActionBar.TabListener { 
CollectionPagerAdapter mCollectionPagerAdapter; 
ViewPager mViewPager; 
SharedPreferences mPrefs; 
final String welcomeScreenShownPref = "welcomeScreenShown"; 


public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    setProgressBarIndeterminateVisibility(true); 
    setProgressBarIndeterminateVisibility(false); 
    setContentView(R.layout.activity_main); 


    mCollectionPagerAdapter = new CollectionPagerAdapter(
      getSupportFragmentManager()); 

    final android.app.ActionBar actionBar = getActionBar(); 
    assert actionBar != null; 
    actionBar.setDisplayShowTitleEnabled(true); 
    actionBar.setDisplayUseLogoEnabled(false); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setIcon(R.drawable.ic_action_icon3); 
    actionBar.setTitle(R.string.app_name2); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mCollectionPagerAdapter); 

    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
    tabs.setViewPager(mViewPager); 


} 

EDIT2 여기 내 MainActivity입니다tabs_background.xml :

<item android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_example" /> 
<item android:state_focused="true" android:drawable="@drawable/tab_selected_focused_example"/> 
<item android:drawable="@color/tab_color"/> 

MainActivity :

actionBar.setDisplayShowTitleEnabled(true); 
    actionBar.setDisplayUseLogoEnabled(false); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setIcon(R.drawable.ic_action_icon3); 
    actionBar.setTitle(R.string.app_name2); 

    mViewPager = (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(mCollectionPagerAdapter); 

    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
    tabs.setViewPager(mViewPager); 
    tabs.setIndicatorColor(android.R.color.white); 

activity_main.xml : 당신이 액션 바에 탭을 추가 할 필요가 없습니다 PagerSlidingTabStrip를 사용하려면

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

<com.astuetz.PagerSlidingTabStrip 
    android:id="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="48dip" 
    app:pstsIndicatorColor="@android:color/white" 
    app:pstsUnderlineColor="@color/tab_color" 
    app:pstsDividerColor="@color/tab_color" 
    app:pstsTabBackground="@drawable/tabs_background"/> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_below="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context=".MainActivity" /> 

</RelativeLayout> 
+0

tabs.setIndicatorColor (android.R.color.white가)'사용하지 마십시오','tabs.setTextColor (의 GetResources 사용() .getColor (android.R.color.white));'대신 텍스트 색상을 설정하십시오. 탭 배경에 대해서는'pstsTabBackground' 속성을 제거하고'android : background = "@ drawable/tabs_background"를 추가하십시오. – rom4ek

답변

5

.

mViewPager = (ViewPager) findViewById(R.id.pager); 
mViewPager.setAdapter(mCollectionPagerAdapter); 

PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
tabs.setViewPager(mViewPager); 

라이브러리가 자동으로 액션 바에 탭을 추가하는이 방법에서 탭의 텍스트를 가져옵니다 : 그냥 당신의 코드를 잘라

@Override 
public CharSequence getPageTitle(int position) { 
    return TITLES[position]; 
} 

편집 :

은에 android:layout_below 속성을 추가 ViewPager 그리고 작동해야합니다 :

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

    <com.astuetz.PagerSlidingTabStrip 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="48dip"/> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_below="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:context=".MainActivity" /> 

</RelativeLayout> 

EDIT2 : 첫째

, 탭 배경 tabs_background.xml라는 당김 폴더에 selector, 작성 :

이 그럼 당신은 설정 등록에 의해, 탭을 사용자 정의 할 수 있습니다, 당신은, 그것을 here를 볼 수 있습니다 사용자 정의를 위해 :

이 행을 부모에게 추가하는 것을 잊지 마십시오 RelativeLayout,210

그리고 마지막으로, 텍스트 색상을 설정, 프로그래밍을 수행

tabs.setTextColor(android.R.color.white); 
+0

실제로 제가 말했듯이 제 탭은 사라졌습니다. – Rick

+0

그러면 XML, 어댑터, 다른 코드를 보여줍니다. – rom4ek

+0

내 질문에 편집 됨 – Rick

관련 문제