目前我正在使用viewpager进行轮播菜单
这是我如何设置viewpager
name = menu.substring(b, menu.length() - 1);//just some strings
fragments = getFragments();
pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
pager = (ViewPager) findViewById(R.id.viewpager);
pager.setPageMargin(-700);
pager.setOffscreenPageLimit(Menu.size());
pager.setAdapter(pageAdapter);
pager.setOnPageChangeListener(pageAdapter);
pager.setCurrentItem(pager.getAdapter().getCount() - 1, false);
pager.setPageTransformer(true, new ZoomOutPageTransformer());
private List<Fragment> getFragments() {
fList.add(MyFragment.newInstance(name));
return fList;
}
然后是我的pageadapter类
class MyPageAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener {
private List<Fragment> fragments;
private FragmentManager fm;
public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fm = fm;
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public void onPageSelected(int arg0) {
}
}
这是MyFragment类
public static final MyFragment newInstance(String message) {
MyFragment f = new MyFragment();
bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
v = inflater.inflate(R.layout.myfragment_layout2, container, false);
TextView messageTextView = (TextView) v.findViewById(R.id.textView);
messageTextView.setText(message);
return v;
}
我希望在视图位于中间时将TextView messageTextView更新为粗体,而将其余视图的其他textview更新为unbold,如下图所示
任何人都可以帮我怎么做?谢谢!
答案 0 :(得分:0)
如果您查看有关ViewPager
的{{3}},则可以使用ViewPager.setOnPageChangeListener()
查看完整示例。
我认为这是一个好的开始。从那里你通知当前Fragment
它被“选中”(在你的情况下是粗体文本)并“取消选择”前一个。
答案 1 :(得分:0)
在获取视图后,您可以使用getItem(pos)
的{{1}}获取上一个,当前和下一个片段视图,请检查这些视图是否存活。
替换您的MyPageAdapter
,如下所示
MyPageAdapter's onPageSelected()