簡體   English   中英

ActionBar選項卡指示器卡在選項卡之間

[英]ActionBar Tab indicator getting stuck between tabs

我已經按照此指南實現了github的 ActionBar選項卡: github 但是我有一個選項卡指示器卡在第二個和第三個選項卡之間的問題。 像有4個標簽,但僅顯示了3個。 看起來像這樣:

標簽

僅當我從第3個標簽滑到第2個標簽時。 它只是停留在那里,如果我再次向左滑動,它將轉到第二個選項卡。 所以基本上感覺就像有4個選項卡。

My FragmentPagerAdapter Class looks like this

    public class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
    final int PAGE_COUNT = 3;
    private static Context context;
    private String tabTitles[];

    public SampleFragmentPagerAdapter(FragmentManager fm, Context context) {
    super(fm);
        this.context = context;
        Resources resources = context.getResources();
        tabTitles = new String[] { resources.getString(R.string.recent),
            resources.getString(R.string.popular),
            resources.getString(R.string.my) };
    }

    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return new RecentFragment();

        case 1:
            return new PopularFragment();

        case 2:
            return new MyFragment();

        }
        return null;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // Generate title based on item position
        return tabTitles[position];
    }

    public static class RecentFragment extends Fragment implements OnItemClickListener {

        ListView listView;
        List<RowItem> rowItems;

        public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.custom_list, container, false);
            String[] titles = { "titleA", "titleB", "titleC" };
            String[] descriptions = { "a", "b", "c" };
            Integer[] images = { R.drawable.christoffer, R.drawable.frede, R.drawable.sofie };

            rowItems = new ArrayList<RowItem>();
            for (int i = 0; i < titles.length; i++) {
                RowItem item = new RowItem(images[i], titles[i], descriptions[i]);
                rowItems.add(item);
            }

            listView = (ListView) rootView.findViewById(R.id.list);
            CustomListViewAdapter adapter = new CustomListViewAdapter(context,
                    R.layout.list_item, rowItems);
            listView.setAdapter(adapter);
            listView.setOnItemClickListener(this);

            return rootView;
        }

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

    }

    }

    public static class PopularFragment extends Fragment {

    }

    public static class MyFragment extends Fragment {

    }

}

我的SlidingTabLayout和SlidingTabStrip類看起來很像指南中的類。 在MainActivity中,我添加了以下代碼來實現選項卡:

ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new SampleFragmentPagerAdapter(
            getSupportFragmentManager(), MainActivity.this));

// Give the SlidingTabLayout the ViewPager
SlidingTabLayout slidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
// Center the tabs in the layout
slidingTabLayout.setDistributeEvenly(true);
slidingTabLayout.setViewPager(viewPager);
// Customize tab color
slidingTabLayout
        .setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
            @Override
            public int getIndicatorColor(int position) {
                return Color.RED;
            }
        });

請通過Java文件將片段XML加載到所有選項卡中,它將解決..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM