ViewPager and PageTitleStrip



所以,我试图使用ViewPager从support创建滑动选项卡。v4图书馆。

一切正常,但标题栏和选项卡没有显示。我知道标签栏在那里,因为它显示了2-3个像素(我设置了一个特定的颜色,这就是我如何知道的),但它没有完全显示,标题也没有。

我将链接我的MainActivity.java,activity_main.xml,如果有人问,我会添加两个片段。但我怀疑这是问题,因为他们没有什么在那里除了线性布局和textView。

MainActivity.java:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
public class MainActivity extends FragmentActivity {
    ViewPager viewPager=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewPager = (ViewPager) findViewById(R.id.viewPager);
        FragmentManager fm = getSupportFragmentManager();
        viewPager.setAdapter(new Adaptor(fm));
    }
    class Adaptor extends FragmentPagerAdapter{

        Fragment fragment = null;
        public Adaptor(FragmentManager fm) {
            super(fm);
        }
        @Override
        public Fragment getItem(int i) {
            if(i==0){
                fragment = new OpiniaTa();
            }
            if(i==1){
                fragment = new Test();
            }
            return fragment;
        }
        @Override
        public int getCount() {
            return 2;
        }
        @Override
        public CharSequence getPageTitle(int position) {
            if(position == 0){
                return "Opinia ta";
            }
            if(position == 1){
                return "test";
            }
            return null;
        }
    }
}

activity_main.xml:

<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/viewPager"
    android:layout_height="match_parent"
    android:layout_width="match_parent">
    <android.support.v4.view.PagerTitleStrip
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/titleTabs"
        android:background="#33B5E5"
        android:foregroundGravity="top"
        android:paddingTop="4dp"
        android:paddingBottom="4dp"
        >
    </android.support.v4.view.PagerTitleStrip>
</android.support.v4.view.ViewPager>
如果需要其他信息,请告诉我,我会尽快回复。

能不能截屏一下结果?我想知道,如果它只是在选项卡内容或选项卡本身不显示。

23.0.0有一个问题,标签中的文本丢失https://code.google.com/p/android/issues/detail?id=183127https://code.google.com/p/android/issues/detail?id=184431

也许你的问题与此无关。我只是想确认一下。

或者,按照海报的建议使用下面的链接。可能是wrap_content to height…

我们如何在PagerTitleStrip和PagerTabStrip的空白标题周围工作?

我认为在Adaptor类,你应该做一个constructor包括片段列表。下面的代码是我所做的。希望对你有所帮助。

public class PagerAdapter extends FragmentPagerAdapter {
    private  List<Fragment> fragments;
    public PagerAdapter(FragmentManager fm, List<Fragment> fragmentList) {
        super(fm);
        this.fragments = fragmentList;
    }
    @Override
    public Fragment getItem(int i) {
        return this.fragments.get(i);
    }
    @Override
    public int getCount() {
        return this.fragments.size();
    }
    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {
            case 0:
                return "Opinia ta";
            case 1:
                return "test";
            default:
                return null;
        }
    }
}

MainActivity类中:

 private  PagerAdapter mPagerAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewpager_layout);
        initializePaging();
    }
    private void initializePaging() {
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, WebServiceFragment.class.getName()));
        fragments.add(Fragment.instantiate(this, CMCSMOFragment.class.getName()));
        mPagerAdapter = new PagerAdapter(this.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
        pager.setAdapter(mPagerAdapter);
    }

最新更新