我有一个ViewPager我正在使用getPageTitle方法来获取当前页面的标题.
这是适配器代码:
@Override
public Fragment getItem(int i) {
details = productData.get(i);
Fragment fragment = new ProductViewFragment();
Bundle args = new Bundle();
args.putInt(ProductViewFragment.ARG_SECTION_NUMBER, i + 1);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return productData.size();
}
public CharSequence getPageTitle(int position)
{
return (position+1)+" of "+myData.size();
}
Run Code Online (Sandbox Code Playgroud)
现在我想更新上一个和下一个片段的页面标题.我想将它们命名为"previous"和"next".它也应该在后续页面上动态更新.
我能够获得当前页面标题编号.例如,当我查看第5个片段时,当前片段将正确显示标题.在ViewPager的两个角上,它显示左侧的上一页标题编号和右侧的下一页标题编号.现在,我希望页面标题在左侧为"上一个",在右侧为"下一个",类似于Gmail应用程序以及它如何显示ViewPager中的邮件计数.
我想知道的主要内容是如何从Gmail应用程序中访问/修改当前片段中下一个/上一个片段的页面标题数据?
android android-fragments android-viewpager viewpagerindicator
想要将点指示器作为附加图像.我希望如果项目超过5,那么应该出现小点,并且在滑动期间,它会调整大小.检查Instagram的实时视图(查找已上传超过5张图片的任何帖子)
我尝试只使用点的大小,并invalidate()在每次页面更改时重绘(by ),但是我无法在中间保持点.玩左右点不会造成任何大问题.但是当活动点位于中间时,会发生滚动效果.我怎样才能做到这一点?
我正在按住一个点列表并在页面更改时使用点大小和位置进行播放,而不是根据列表中的点属性使无效和绘制圆圈.然而,无法找到关于如何保持中间点的任何想法,所以我可以做出滚动效果.任何其他想法表示赞赏
点指示器
我使用ActionBarSherlock和ViewPagerIndicator库来实现滑动效果和操作栏.因此,我可以滑动不同的片段,但不显示指标标题.

这是我的FragmentActivity
public class eventActivity extends SherlockFragmentActivity {
ViewPagerFragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.event_layout);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(true);
mAdapter = new ViewPagerFragmentAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
mIndicator.setCurrentItem(1);
}
......
Run Code Online (Sandbox Code Playgroud)
这是我的适配器
public static class ViewPagerFragmentAdapter extends FragmentPagerAdapter implements TitleProvider {
ArrayList<Fragment> fragments = new ArrayList<Fragment>();
ArrayList<String> titles = new ArrayList<String>();
public ViewPagerFragmentAdapter(FragmentManager fm) {
super(fm);
fragments.add(new eventInvitedFragment());
titles.add("Invited");
fragments.add(new eventAllFragment());
titles.add("all");
fragments.add(new eventParticipatedFragment());
titles.add("participated");
}
@Override
public …Run Code Online (Sandbox Code Playgroud) android actionbarsherlock android-actionbar viewpagerindicator
我有一个jake Wharton的viewpagerindicator,在那个viewpager我有6个页面.所有页面都包含listviews,我用AsyncTask加载它们.有时viewpager在错误的索引显示错误的页面.这是我的viewpager适配器:
public class TestFragmentAdapter extends FragmentPagerAdapter{
protected static final String[] CONTENT = new String[] { "a","b","c","d","e","f" };
private int mCount = CONTENT.length;
Fragment fragment1,fragment2,fragment3,fragment4,fragment5,fragment6;
public TestFragmentAdapter(FragmentManager fm) {
super(fm);
fragment1 = new CategoryListView();
fragment2 = CustomizedListviewRecent.newInstance(41);
fragment3 = CustomizedListviewMostRecents.newInstance(0);
fragment4 = CustomizedListviewPopulars.newInstance();
fragment5 = CustomizedListviewRecent.newInstance(42);
fragment6 = CustomizedListviewRecent.newInstance(43);
}
@Override
public Fragment getItem(int position) {
if(position == 0)
return fragment1;
else if(position == 1)
return fragment2;
else if(position == 2)
return fragment3;
else if(position == 3)
return fragment4;
else …Run Code Online (Sandbox Code Playgroud) 首先启动应用程序将需要进行一些初始配置,因此我需要根据页面上的用户决策加载页面并将其滑动.所以我想设置并在动画决定之后滑动到正确的页面.视觉步骤指示器甚至可以改变......一切都应该是动态的如下:

但ViewPager总是在片刻之后至少加载下一页(setOffscreenPageLimit(0)不允许); 实际上,当用户从设置片段中选择一个选项时,幻灯片动画会在所有中间页面中运行,并且在动画期间它们是可见的,因为我使用mIndicator.setCurrentItem(5, true);
我能够禁用手势幻灯片,但弧形动画不起作用.我可以设置mIndicator.setCurrentItem(5, false);但是在用户点击按钮到达相应页面后我仍然想要幻灯片动画.
Fragment安装程序具有Activity实现的Interface侦听器.从按钮调用侦听器,实现如下:
...
@Override
public void onRestoreLocal() {
//The indicator contains ViewPager and it switches the page as well.
mIndicator.setCurrentItem(5, true);
}
...
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
...
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment.
Log.d(TAG, "getItem position="+position);
switch (position) {
case 0:
return PlaceholderFragment.newInstance(R.layout.setup_fragment_1, position);
case 1:
return PlaceholderFragment.newInstance(R.layout.setup_fragment_2, position);
case 2: …Run Code Online (Sandbox Code Playgroud) android android-animation android-fragments android-viewpager viewpagerindicator
在我的应用程序中有2个选项卡(Android设计支持库)这是带有ViewPagerAdapter的片段:
public class ListaCanali extends Fragment {
public static TabLayout tabLayout;
public static ViewPager viewPager;
public static int int_items = 2 ;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v =inflater.inflate(R.layout.lista_canali, container,false);
//Titolo Fragment
((MainActivity) getActivity()).setActionBarTitle("Lista Canali");
//FindViewById
tabLayout = (TabLayout) v.findViewById(R.id.tabs);
viewPager = (ViewPager) v.findViewById(R.id.viewpager);
//Funzioni Tab
viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
tabLayout.post(new Runnable() {
@Override
public void run() {
tabLayout.setupWithViewPager(viewPager);
}
});
return v;
}
//Adattatore Tab
class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) …Run Code Online (Sandbox Code Playgroud) tabs android android-fragments android-viewpager viewpagerindicator
我正在尝试使用选择器为ViewPager实现一个简单的点指示器.
当页面改变时,点应该改变颜色和大小,但它们只改变颜色,而大小保持不变.
选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="oval">
<size
android:height="12dp"
android:width="12dp"/>
<solid android:color="@color/highlight"/>
</shape>
</item>
<item>
<shape android:shape="oval">
<size
android:height="6dp"
android:width="6dp"/>
<solid android:color="@color/light_grey"/>
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
用于布局
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="@dimen/margin_2x"
android:src="@drawable/dot_selector">
</ImageView>
Run Code Online (Sandbox Code Playgroud)
在onCreate()中使用它来显示初始状态:
for (int i = 0; i < mPagerAdapter.getCount(); i++) {
getLayoutInflater().inflate(R.layout.dot_indicator, viewPagerCountDots);
}
viewPagerCountDots.getChildAt(0).setSelected(true);
Run Code Online (Sandbox Code Playgroud)
这看起来像预期的那样
但当我改变页面改变时的选择器状态...
@Override
public void onPageSelected(int position) {
for (int i = 0; i < mPagerAdapter.getCount(); i++) {
viewPagerCountDots.getChildAt(i).setSelected(i == position);
}
}
Run Code Online (Sandbox Code Playgroud)
.. ..看起来像这样:
使子项无效或ViewGroup不执行任何操作.有什么线索这里出了什么问题?
更新
我想要的是:
当页面宽度为一半时,底部圆圈指示符的数量必须是页面数量的一半.
当页面宽度已满时,底部圆圈指示符的数量必须与页数一样多.
还有另外一个要求:
页面宽度由PagerAdapter#getPageWidth()获取
谁能为此提供完美的解决方案?没有制作两个布局文件或两个适配器?
这是我为实现这个基于GIF的活动而开发的完整源代码.
问题改进将被接受.
android android-adapter android-viewpager viewpagerindicator
我正在使用ActionBarSherlock和ViewPagerIndicator来创建一个包含选项卡和列表导航的活动.
选项卡由FragmentStatePagerAdapter支持,并允许用户在应用程序的不同部分之间导航.列表导航允许用户切换他们当前所在的选项卡的视图模式,例如,如果他们正在查看搜索结果,则他们能够在列表和网格模式之间切换.
我遇到的问题是,当我在选项卡之间滚动时,列表导航会间歇性地停止工作.我可以单击微调器,它会显示选项列表,但是当我选择其中一个微调器中的文本时:
(出于某种原因,使用FragmentPagerAdapter而不是FragmentStatePagerAdapter似乎可以经常停止问题,但偶尔也会发生.)
有任何想法吗?
谢谢
android actionbarsherlock android-actionbar viewpagerindicator
我在屏幕上有两个视图寻呼机.一个ViewPager使用JakeWharton的circleindicator,第二个使用TabPage Indicator.我需要使用异步调用从后端下载数据.一旦数据下载,我应该在viewpagers中显示数据.这是我的活动的代码片段.
ViewPager pager1;
ViewPager pager2;
public onCreate(){
//I Set Up ContentView
//Locate ViewPagers & Indicators
//pager1 = ...
//pager2= ...
//Locate Indicators
CallAsyncTask().execute();
}
private class CallAsyncTask extends AsynTask{
doinbackground(){
//Download Data
}
onPostExecute(){
displayData();
}
}
private displayData(){
// Set Up Adapters & Indicators for ViewPagers
}
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时,我得到ViewPager Not Bound Exception.是否有解决方案.我认为 解决方法是在AsyncTask的onPostExecute()方法中设置setUpContentView.但是我还需要显示progressBars直到下载数据.我怎样才能实现这一切.