我尝试使用滑动图像进行简单的应用.我使用这篇文章http://www.androidbegin.com/tutorial/android-viewpager-gallery-images-and-texts-tutorial/.
这是我的xml with viewpager:main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<android.support.v4.view.ViewPager
android:id="@+id/pages"
android:layout_height="match_parent"
android:layout_width="match_parent">
</android.support.v4.view.ViewPager>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的xml with image:item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/image"
android:layout_gravity="center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的适配器:ViewerPagerAdapter.java
public class ViewerPagerAdapter extends PagerAdapter {
private Context mContext;
private ArrayList<CueModel> mArray;
private LayoutInflater mInflater;
private ImageView mImage;
public ViewerPagerAdapter(Context _context){
mContext = _context;
mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public void setArray(ArrayList<Bitmap> arr){
mArray = arr;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE; …Run Code Online (Sandbox Code Playgroud) 假设我的视图寻呼机中有一些片段.我想onPageSelected()在下一个片段之前在方法中进行一些验证.除非验证成功,否则我不想进入下一个片段.另一个问题是,我怎么知道以前的位置?如果我从左向右滑动,前一个位置将是位置-1,如果从右到左,则位置为+ 1.但无论如何要知道用户刷卡的方向.在下面的图片中,如果用户什么都没有填写,它应该保持不变(不用下一个片段).希望得到正确的答案..

我正在使用自定义ViewPager,当我滑动到新页面时,ViewPager.OnPageChangeListener不起作用.可能是什么原因?
mPager = (WrapContentHeightViewPager) findViewById(R.id.pager);
mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
public void onPageSelected(int position) {
// Check if this is the page you want.
currentFav = position;
Log.i("currentFav pos", currentFav+"");
}
});
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用嵌套ViewPager的应用程序。每个父ViewPager包含7个子ViewPager。
它适用于第一个父级,但是到达下一个页面时,它在子级Viewpager处显示为空白。
这里有什么建议,甚至可以使用Nested View分页器吗?如果是的话,如何避免这种情况?
父ViewPager布局,与子片段相同:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:customfont="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/calendarViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)
这是我从父级ViewPager片段执行的子级ViewPager适配器实现:
private void processDatacardAdapter(View view) {
childViewPager = (ViewPager) view.findViewById(R.id.childViewPager);
childSlidePagerAdapter = new ChildSlidePagerAdapter(parentActivity.getSupportFragmentManager());
childViewPager.setAdapter(childSlidePagerAdapter);
childViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
Utils.showToast(parentActivity, "sds position : " + position);
}
});
}
Run Code Online (Sandbox Code Playgroud) 我正在使用这个库https://github.com/astuetz/PagerSlidingTabStrip来创建一个PagerTabStrip.
我的输出 
你可以看到我的标签之后我有一些空的空间.我想让选项卡适合所有屏幕,或者至少使选项卡居中.那可能吗?
<com.astuetz.PagerSlidingTabStrip
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:background="@color/facebook_theme_light"
android:id="@+id/activity_posts_tabs"
android:layout_width="match_parent"
android:layout_height="48dip" />
<android.support.v4.view.ViewPager
android:background="@color/facebook_theme_dark"
android:id="@+id/activity_posts_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/activity_posts_tabs"
tools:context=".MainActivity" />
Run Code Online (Sandbox Code Playgroud) 我ViewPager在我的应用程序中使用.当我滑到第3页并更改此页面上的某些内容时(比如写入文本EditText)并返回到第1页,然后再次滑动到第3页; 更改已重置(文本已清除).为什么?我该如何预防呢?
我正在使用此代码:
ViewPager tab = (ViewPager) findViewById(R.id.add_cost_pager);
AddCostPagerAdapter adapter = new AddCostPagerAdapter(
getSupportFragmentManager());
tab.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
AddCostPagerAdapter.class:
private class AddCostPagerAdapter extends FragmentStatePagerAdapter {
public AddCostPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
case 0:
return new Page_1();
case 1:
return new page_2();
case 2:
return new page_3();
default:
return null;
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 3;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试用2个标签实现滑动视图.为此,我使用带有2个片段的view pager.现在,问题在于,只要打开主活动(包含这两个选项卡),就会为两个片段调用onCreateView函数.请帮助我,因为我怎么能避免在使用第二个片段时调用onCreateView.
谢谢,Arpit
我是android编程的初学者.我正在使用按钮onclick使用以下代码将新页面添加到viewpager.但是,当在滑动活动上实例化项目时,viewpager返回错误的位置值.
向右滑动即可
正确位置:1,2,3(第2,3和4页)
改错位置:2,3,4
向左滑动即可
正确位置:3,2,1(第4页,第3页和第2页)
改为错误的位置:2,1,0
我想从instantiateItem()获取位置值,以从"views"数组列表中的特定位置获取视图,以显示在viewpager上.错误的位置会导致显示错误的视图.希望可以有人帮帮我!!!提前致谢.
添加按钮:
findViewById(R.id.btnAdd).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.image_text_1, null);
// the array list
views.add(itemView);
pagerAdapter.notifyDataSetChanged();
}
});
Run Code Online (Sandbox Code Playgroud)
ViewPager:
private class SlideAdapter extends PagerAdapter {
ArrayList<View> views = new ArrayList<View>();
@Override
public int getItemPosition (Object object)
{
int index = views.indexOf((View)object);
if(views.contains((View)object)){
return index;
}else{
return POSITION_NONE;
}
}
@Override
public Object instantiateItem (ViewGroup container, final int position)
{
//for example, when …Run Code Online (Sandbox Code Playgroud) 我正在为android编写一个新的应用程序,我想实现第一个启动教程.特别是,教程必须是交互式的.基本上,在用户注册到服务后,将需要最低设置.
我想今天我们已经进入Google Apps,例如Sheets,Docs和迄今为止.例外的是,这些教程的目的是解释应用程序的工作原理.在这里,我希望有一些用户可以输入一些数据的东西.
我正在看ShowcaseView,但似乎已被弃用并且风格老旧.
所以这里的问题是:实现它的最佳方法是什么?ViewPager?
我也看了另外一个问题,但这并没有太大帮助.
任何建议真的很感激.
编辑:我发现了另一个不错的选择.AppIntro看起来我正在寻找.:)
我有一个使用ViewPager的应用程序充当TabHost.问题是,当应用程序启动时,所有显示都很好,在所有3个选项卡之间滑动.
但是,在重新选择第一个选项卡时,应用程序将重新初始化但不显示正确的内容,应用程序应保留Fragments当前状态而不是重新初始化.
TabAdapter.java
public class TabAdapter extends FragmentPagerAdapter{
public TabAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch(position){
case 0:
return new MapFragmentView();
case 1:
return new LogView();
case 2:
return new SettingsView();
}
return null;
}
@Override
public int getCount() {
return 3;
}
Run Code Online (Sandbox Code Playgroud)
}
MapsActivity.java(主要活动)
public class MapsActivity extends FragmentActivity implements ActionBar.TabListener {
private ViewPager viewPage;
private TabAdapter myAdapter;
private ActionBar actionBar;
public static FragmentManager fragmentManager;
private String[] tabNames = {"Map", "Log" , "Settings"}; …Run Code Online (Sandbox Code Playgroud) tabs android android-fragments android-viewpager fragment-tab-host