Tôi đang sử dụng máy nhắn tin trượt dải tab: https://github.com/astuetz/PagerSlidingTabStrip/ViewPager của không di chuyển
Với dòng sau:
@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);
}
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;
}
}
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>
Tất cả mọi thứ đang làm việc tốt với ít trên code.But tôi cần phải lắng nghe những thay đổi tab, cho đạt được điều này tôi đã thay đổi phương pháp onCreate
của tôi như thế này:
@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);
}
});
}
Với mã này mã của tôi đang làm việc nhưng tab chỉ báo không di chuyển.
Bạn có thể nhìn thấy nó ở đây:
Tôi đang ở tab chat nhưng chỉ số vẫn còn nằm trên những người sử dụng tab.How tôi có thể sửa lỗi này? Nếu tôi không sử dụng setOnPageChangeListener
nó đang di chuyển.
Vẫn không hoạt động đối với tôi. Bất kỳ giải pháp nào khác. Thư viện này hút! –