Android 操作栏选项卡指示器卡在选项卡之间
我已经按照以下指南实现了ActionBar选项卡:。但是,我有一个标签指示器卡在第二个和第三个标签之间的问题。有4个选项卡,但仅显示3个。看起来像这样: 只有当我从第三个标签滑到第二个标签时。它只是停留在那里,如果我再次向左滑动,它将进入第二个选项卡。所以它基本上只是感觉有4个标签Android 操作栏选项卡指示器卡在选项卡之间,android,tabs,Android,Tabs,我已经按照以下指南实现了ActionBar选项卡:。但是,我有一个标签指示器卡在第二个和第三个标签之间的问题。有4个选项卡,但仅显示3个。看起来像这样: 只有当我从第三个标签滑到第二个标签时。它只是停留在那里,如果我再次向左滑动,它将进入第二个选项卡。所以它基本上只是感觉有4个标签 My FragmentPagerAdapter Class looks like this public class SampleFragmentPagerAdapter extends FragmentP
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 {
}
}
请通过java文件将片段XML加载到所有选项卡中,它将解决..尝试返回新片段;而不是返回null;在您的getItem方法中-只是一个猜测!如果您对行slidengtablayout.setDistributeEvenlytrue进行注释;然后发生了什么?我首先在开发时返回了新的片段,正如天网猜测的那样,并提出了相同的问题,然后我发现了这个问题。最后,在onCreateView中返回一个非空视图,这节省了我的时间。这意味着如果我继续编码,那么bug就会消失,但我在上面浪费了很多时间…
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;
}
});