gpt4 book ai didi

Android ViewPagerIndicator 设置标题

转载 作者:行者123 更新时间:2023-11-30 03:53:20 26 4
gpt4 key购买 nike

我正在使用 http://viewpagerindicator.com/图书馆。我想在 Gmail 应用程序上创建一个 TitlePageIndicator,如下图所示:

enter image description here

我确实想实现同样的事情,第一个标题是“较新”,最后一个标题是“较旧”,中间标题是“[页面位置] [总页数]”。是否可以使用我正在使用的库实现此目的,或者我应该修改它吗?

最佳答案

我遇到了同样的问题。在 Matthieu 的帮助下解决了这个问题。基于 ViewPagerIndicator 附带的示例。

基本上在页面更改时监听并更改适配器以根据当前位置提供不同的页面标题。下面给出的代码只适用于我。

如果您有这些示例,并且您只是替换了这两个文件,那么试试这个示例

像这样更改了 TestFragmentAdapter 的代码:

class TestFragmentAdapter extends FragmentPagerAdapter implements IconPagerAdapter {
protected static final String[] CONTENT = new String[] { "This", "Is", "stack", "overflow" };
protected static final int[] ICONS = new int[] {
R.drawable.perm_group_calendar,
R.drawable.perm_group_camera,
R.drawable.perm_group_device_alarms,
R.drawable.perm_group_location
};

private int mCount = CONTENT.length;

// CHANGE START HERE
private int current_position=0;

public void set_current_position(int i) {
current_position = i;
}
// CHANGE ENDS HERE

public TestFragmentAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
}

@Override
public int getCount() {
return mCount;
}

@Override
public CharSequence getPageTitle(int position) {
// CHANGE START HERE
if (position == current_position-1) {
return "Previous";
} else if (position == current_position+1) {
return "Next";
}
// CHANGE ENDS HERE
return TestFragmentAdapter.CONTENT[position % CONTENT.length];
}

@Override
public int getIconResId(int index) {
return ICONS[index % ICONS.length];
}

public void setCount(int count) {
if (count > 0 && count <= 10) {
mCount = count;
notifyDataSetChanged();
}
}
}

SampleTitlesDefault 的代码是这样的(添加了 OnPageChangeListener)

public class SampleTitlesDefault extends BaseSampleActivity implements ViewPager.OnPageChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_titles);

mAdapter = new TestFragmentAdapter(getSupportFragmentManager());

mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);

mIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
// CHANGE START HERE
mIndicator.setOnPageChangeListener(this);
// CHANGE ENDS HERE
}

// CHANGE START HERE
@Override
public void onPageScrolled(int i, float v, int i1) {
}

@Override
public void onPageSelected(int i) {
mPager = (ViewPager)findViewById(R.id.pager);
((TestFragmentAdapter)mPager.getAdapter()).set_current_position(i);
}

@Override
public void onPageScrollStateChanged(int i) {
}
// CHANGE ENDS HERE
}

关于Android ViewPagerIndicator 设置标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13776737/

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