gpt4 book ai didi

android - 将 ActionBar 选项卡绑定(bind)到 ViewPager

转载 作者:搜寻专家 更新时间:2023-11-01 07:58:44 24 4
gpt4 key购买 nike

我正在尝试绑定(bind) ActionBar TabsViewPager .一开始我为 ActionBar Tabs 创建了两个独立的项目和 ViewPager , 他们工作得很好。当尝试将 彼此绑定(bind)时,根据下面的代码,ViewPager遵守TabListener ,换句话说,当我触摸 ActionBar Tab ViewPager相应地更改并显示相应的 View .举个例子,我有三个Tabs , 当触摸 Tab第二,ViewPager显示相应的页码二。等等。

但是 ActionBar Tabs不服从ViewPager ,换句话说,当滑动屏幕移动到ViewPager的下一页时, ViewPager显示相应的 View但是 ActionBar Tab不根据当前ViewPager改变其当前选择状态已选择 View .例如,滑动到 ViewPage 时第三,ViewPager展示其尊贵的View这是第三个,但是,当前选择的 ActionBar Tab不会改变为第三名。我可以访问 ViewPage三同时突出显示Tab是第一。

希望我把问题解释清楚了。

MainActivity

private ViewPager mViewPager;
private MyTabsPagerAdapter mPagerAdapter;
private ActionBar mActionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

List<Fragment> mFragList = new ArrayList<Fragment>();
mFragList.add(new Fragment01());
mFragList.add(new Fragment02());
mFragList.add(new Fragment03());

mViewPager = (ViewPager) findViewById(R.id.pager);
mActionBar = getActionBar();
mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

mPagerAdapter = new MyTabsPagerAdapter(getSupportFragmentManager(), mFragList);
mViewPager.setAdapter(mPagerAdapter);

for(int i=0; i<mFragList.size(); i++) {
mActionBar.addTab(mActionBar.newTab().setText("Fragment0"+(i+1)).setTabListener(this));
}
}
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub

}

@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub
mViewPager.setCurrentItem(arg0.getPosition());
//mActionBar.setSelectedNavigationItem(arg0.getPosition());
}

@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1) {
// TODO Auto-generated method stub

}

MyTabsPagerAdapter

public class MyTabsPagerAdapter extends FragmentPagerAdapter {

List<Fragment> mFragList;

public MyTabsPagerAdapter(FragmentManager fm, List<Fragment> mFragList) {
super(fm);
// TODO Auto-generated constructor stub
this.mFragList = mFragList;
}

@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return this.mFragList.get(arg0);

}

@Override
public int getCount() {
// TODO Auto-generated method stub
return this.mFragList.size();
}

最佳答案

例如,当 viewpager 发生变化时,您需要设置一个监听器,

 mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});

这会等待 viewpager 发生变化,当它发生变化时,它会将 actionbar 位置设置为等于您将 viewpager 移动到的位置。

关于android - 将 ActionBar 选项卡绑定(bind)到 ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24408476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com