我正在使用寻呼机滑动标签条:https://github.com/astuetz/PagerSlidingTabStrip/
有以下几行:
@Override
protected void onCreate(Bundle savedInstanceState) {
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);
}
Run Code Online (Sandbox Code Playgroud)
MyPagerAdapter:
public class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return (position == 0)? "Users" : "Chats" ;
}
@Override
public int getCount() {
return 2;
}
@Override
public Fragment getItem(int position) {
return (position == 0)? new RandomsFragment() : new ChatsFragment() ;
}
@Override
public long getItemId(int position) {
return position;
}
}
Run Code Online (Sandbox Code Playgroud)
XML:
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
app:pstsIndicatorColor="#0B0B16"
app:pstsShouldExpand="true" />
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<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="wrap_content"
android:layout_below="@+id/tabs">
</android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,一切都运行良好.但是我需要监听标签更改,为了实现这一点,我将我的onCreate方法更改为:
@Override
protected void onCreate(Bundle savedInstanceState) {
pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setViewPager(pager);
pager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
Log.w("Tab Selected","Position:"+position);
}
});
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我的代码正在运行但标签指示器没有移动.
你可以在这里看到它:

我在聊天选项卡,但指标仍然在用户选项卡上.我如何解决这个问题?如果我不使用setOnPageChangeListener它是移动.
问题是pager.setOnPageChangeListener(new OnPageChangeListener())因为标签本身被设置为OnPageChangeListener.
去做 tabs.setOnPageChangeListener(new OnPageChangeListener() ... )
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |