我正在尝试使用PagerAdapter显示来自可绘制视图寻呼机的图像。为此,我编写了以下代码--
//调用PagerAdapter
public void showAwardsBadgesAlert()
{
// custom dialog
final Dialog dialog = new Dialog(context, R.style.MyAlertDlgTheme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.awards_badges_dlg_layout);
dialog.setCanceledOnTouchOutside(false);
dialog.setCanceledOnTouchOutside(true);
ViewPager awardsBadgesPager = (ViewPager) dialog.findViewById(R.id.awardsBadgesPager);
AwardsBadgesAdapter awardsBadgesAdapter = new AwardsBadgesAdapter(context, feedObject.getAwardStatistics().getAwardsBdgesList());
awardsBadgesPager.setAdapter(awardsBadgesAdapter);
dialog.show();
}
下面是我的适配器类--
public class AwardsBadgesAdapter extends PagerAdapter
{
private Context context;
private ArrayList<AwardsBadges> awardsList;
public AwardsBadgesAdapter(Context context, ArrayList<AwardsBadges> awardsList)
{
this.context = context;
this.awardsList = awardsList;
}
@Override
public int getCount()
{
if(awardsList != null)
{
return awardsList.size();
}
return 0;
}
@Override
public boolean isViewFromObject(View view, Object object)
{
return view == object;
}
@Override
public Object instantiateItem(final View container, final int position)
{
LayoutInflater inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.awards_badges_dlg_item, null);
ImageView ivAwards = (ImageView) layout.findViewById(R.id.ivAwardsBadges);
AwardsBadges currBadge = awardsList.get(position);
if(currBadge.getImageName()!=null && currBadge.getImageName().equalsIgnoreCase("pink star diamond"))
{
Picasso.with(context).load(R.drawable.pinkstar).into(ivAwards);
}
else if(currBadge.getImageName()!=null && currBadge.getImageName().equalsIgnoreCase("tanzanite"))
{
Picasso.with(context).load(R.drawable.tanzanite).into(ivAwards);
}
else if(currBadge.getImageName()!=null && currBadge.getImageName().equalsIgnoreCase("painite"))
{
Picasso.with(context).load(R.drawable.painite).into(ivAwards);
}
else if(currBadge.getImageName()!=null && currBadge.getImageName().equalsIgnoreCase("taaffeite"))
{
Picasso.with(context).load(R.drawable.taaffeite).into(ivAwards);
}
return layout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
((ViewPager) container).removeView((View) object);
}
@Override
public float getPageWidth(int position)
{
return (0.33f);
}
}
下面是我的对话框 xml--
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/awardsBadgesPager"
android:layout_width="match_parent"
android:layout_height="@dimen/sz_seventy"
android:layout_below="@+id/txtPlace"
android:layout_margin="10dp"
android:background="@color/tipstransperent"
android:padding="10dp"
android:visibility="visible" >
</android.support.v4.view.ViewPager>
</RelativeLayout>
下面是 ViewPager Item xml--
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp" >
<ImageView
android:id="@+id/ivAwardsBadges"
android:layout_width="@dimen/sz_fifty"
android:layout_height="@dimen/sz_fifty"
android:layout_centerInParent="true" />
</RelativeLayout>
//下面是解释当前如何显示空的ViewPager的屏幕截图--
当我调试应用程序时,一切似乎都很好,但不知道为什么图像没有显示在ViewPager中。请帮忙..
((ViewPager)容器)。addView(布局);将上述语句添加到instantiateItem()方法中的return语句之前。这肯定会对你有帮助。
首先,您应该使用视图组
作为第一个参数来覆盖instantiateItem()
,而不是使用View
。后者已被弃用。
然后,需要将膨胀的视图
添加到页面编辑器
的instantiateItem()方法中的
。引用
instantiateItem()
方法的文档:
适配器负责将视图添加到此处给出的容器
方法,在< code>return语句之前。只需添加< code > container . add view(layout);
到< code>instantiateItem()
我的应用程序中有一个viewpager,它有7个片段,每个片段代表各自的逻辑 但是,有两个片段是相互耦合的,一个片段不能没有另一个片段而存在。 我有两个按钮,在屏幕底部的“上一个”和“下一个”,在片段之间切换。 我想使viewpager中的滑动无法到达其中一个耦合片段 现在我这样做:我把第一个片段(耦合的片段)放在位置0,第二个片段放在最后一个位置,这样当你左右滑动时,你就可以最后到达第二个耦合的
我怎样才能在Android中获得类似这样的东西? 我已经用深度页面转换器实现了一个viewpager,但是我想不出在后面添加项目预览的方法。
你好 我已经做了很长时间的编程,但刚刚开始为android开发,至少可以说它和c有很大的不同。。。 无论如何,我正在尝试实现一个带有一些选项卡的gui,它应该能够在向左/向右滑动时更改选项卡。这些选项卡是通过actionbar(确切地说是ActionBarSherlock)实现的,即使用支持库中的ViewPager进行滑动。单个选项卡是片段(SherlockFragment:s)。在底部应该有某种
如何创建这样一个Android ViewPager?
我想在垂直视图页中实现一个recyclerview。我当前的布局如下所示 如果我从Fragment1滑动到Fragment2,一切正常。我可以在回收器视图中上下滚动。如果我尝试滑动/滚动回Fragment1,就会出现问题。 如果用户已滚动到回收器视图的顶部,我想将下一个“向上”滚动事件转发到垂直视图页页面。我尝试过重写 方法,但遗憾的是仍然没有成功。有什么想法吗?感谢您的帮助:)
所以我试着用可视寻呼机在屏幕间切换。我试着不使用碎片来做这件事,但是我不能让它工作。我在第59行得到一个错误,它是mview pager . setadapter(mCustomPagerAdapter);当我试图设置我的适配器时出现空指针异常。我在这里找到了一个例子。我想我在这个问题上有些力不从心,这是我第一次尝试使用可视寻呼机。 这是我的路由详细信息活动,我试图设置适配器 这是我的自定义页面适