Android 在片段中实现滑动选项卡

Android 在片段中实现滑动选项卡,android,android-fragments,android-tablayout,Android,Android Fragments,Android Tablayout,我正在看一本关于如何使用TabLayout的指南。这是他们显示如何附加PagerAdapter类的方式 public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main

我正在看一本关于如何使用TabLayout的指南。这是他们显示如何附加PagerAdapter类的方式

public class MainActivity extends FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get the ViewPager and set it's PagerAdapter so that it can display items
    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setAdapter(new SampleFragmentPagerAdapter(getSupportFragmentManager(), 
        MainActivity.this));

    // Give the TabLayout the ViewPager
    TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
    tabLayout.setupWithViewPager(viewPager);
}
然而,他们的列表是一个活动,而我的是一个片段。我很难使他们的代码适应我的用例,因为我不完全理解活动和片段之间的实际差异。现在,当我尝试在标签之间滑动时,什么都没有发生。这是我的密码:

public class CandidateListFragment extends Fragment {
public static final String TAG = "candidates";

@InjectView(R.id.tabLayout) TabLayout tabLayout;

public CandidateListFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_candidatelist, container, false);
    initInstances(v);
    return v;
}

private void initInstances(View v){
    //TODO: Change to support below API level 21
    getActivity().findViewById(R.id.toolbar_actionbar).setElevation(R.dimen.toolbar_candidatelist_elevation);
    ViewPager viewPager = (ViewPager) v.findViewById(R.id.viewpager);
    viewPager.setAdapter(new TabsFragmentPagerAdapter(getActivity().getSupportFragmentManager(),
            getActivity()));
    ButterKnife.inject(this, v);
    tabLayout.setupWithViewPager(viewPager);
}

@Override public void onDestroyView() {
    super.onDestroyView();
    ButterKnife.reset(this);
}
我想出来了!!!
我将片段的xml布局文件设置为RelativeLayout而不是LinearLayout,因此我的ViewPager不在屏幕上,这意味着我无法滑动。正是这些简单的错误让我

我认为相对论也能奏效。恭喜你解决了这个问题。