gpt4 book ai didi

android - ViewPager Adapter 类中的 Activity 布局元素

转载 作者:行者123 更新时间:2023-11-29 19:09:08 26 4
gpt4 key购买 nike

我的一个 Activity 使用 ViewPager 在图像之间滑动并在按下图像时启动另一个 Activity 。在开始新 Activity 之前,我使用这个 library: https://github.com/daimajia/AndroidViewAnimations为我在 activity_layout 中的项目设置动画。问题是我的 ViewPagerAdapter 不是 Activity 类,因此我无法根据需要在 library

中使用 findViewById

库示例:

YoYo.with(Techniques.FadeIn)
.duration(2100)
.repeat(0)
.playOn(findViewById(R.id.settingsButton));

ViewPagerAdapter:

public class ViewPagerAdapter extends PagerAdapter{

List<Integer> lstCrates;
Context context;
LayoutInflater inflater;

public ViewPagerAdapter(List<Integer> lstImages, Context context) {
this.lstCrates = lstImages;
this.context = context;
inflater = LayoutInflater.from(context);
}

@Override
public Object instantiateItem(ViewGroup container, final int position) {
View view = inflater.inflate(R.layout.list_item, container, false);
ImageView swipeableCrate = (ImageView)view.findViewById(R.id.swipeableCrate);
swipeableCrate.setImageResource(lstCrates.get(position));

view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (position == 0) {
Intent intent = new Intent(context, Gamescom.class);
context.startActivity(intent);
if (context instanceof Activity) {
((Activity) context).overridePendingTransition(R.anim.animation1, R.anim.animation2);
}

}
if (position == 1) {
Intent intent = new Intent(context, MainActivity.class);
context.startActivity(intent);
if (context instanceof Activity) {
((Activity) context).overridePendingTransition(R.anim.animation1, R.anim.animation2);
}
}
if (position == 2) {
Intent intent = new Intent(context, Main2Activity.class);
context.startActivity(intent);
if (context instanceof Activity) {
((Activity) context).overridePendingTransition(R.anim.animation1, R.anim.animation2);
}
}
}
});

container.addView(view);
return view;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}

@Override
public int getCount() {
return lstCrates.size();
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}

我可以通过这种方式在我的 ViewPagerAdapter 中使用这个库吗?

最佳答案

如果您的适配器中有 context 作为成员,那么您可以像这样使用它:

YoYo.with(Techniques.FadeIn)
.duration(2100)
.repeat(0)
.playOn(((MainActivity)context).findViewById(R.id.settingsButton)); // MainActivity will be replaced with the name of your Activity

关于android - ViewPager Adapter 类中的 Activity 布局元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46016904/

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