Java 我有一个相同片段的ViewPager RecyclerView只需在ViewPager的一个片段中加载项
当我想在RecyclerView中加载项目时,我有一个带有片段的viewPager,项目只加载在第一个片段RecyclerView中,不加载在其他片段中,但文本视图加载在所有片段中,当我再次返回到前一个项目时,项目加载在该片段的RecyclerView中 我看到了一些解决方案,我让我所有的recyclerView适配器视图都不是静态的,但它仍然不起作用 我用不同的名称、不同的布局名称和不同的id为它的recyclerView制作了其他片段,它可以工作,但我有大量片段,这不是我的解决方案):Java 我有一个相同片段的ViewPager RecyclerView只需在ViewPager的一个片段中加载项,java,android,android-recyclerview,Java,Android,Android Recyclerview,当我想在RecyclerView中加载项目时,我有一个带有片段的viewPager,项目只加载在第一个片段RecyclerView中,不加载在其他片段中,但文本视图加载在所有片段中,当我再次返回到前一个项目时,项目加载在该片段的RecyclerView中 我看到了一些解决方案,我让我所有的recyclerView适配器视图都不是静态的,但它仍然不起作用 我用不同的名称、不同的布局名称和不同的id为它的recyclerView制作了其他片段,它可以工作,但我有大量片段,这不是我的解决方案): pu
public类ShowInfo扩展了片段{
专用静态寻呼机;
私有静态int currentPage=0;
视图;
回收视图rv;
回收视图rv1;
图像视图;
ImageView下一代;
文本视图图像状态;
文本视图标题;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
视图v=充气机。充气(R.layout.activity\u item\u滚动,容器,错误);
字符串strtext=getArguments().getString(“标题”,“参数”);
title=v.findViewById(R.id.textView);
标题.setText(strtext);
返回v;
}
私有静态最终整数[]XMEN={R.drawable.testimage,R.drawable.slide,R.drawable.testimage,R.drawable.slide};
private ArrayList XMENArray=new ArrayList();
@凌驾
已创建公用void onview(@NonNull视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
init();
RVAdapter_item RVAdapter=新的RVAdapter_item(initializeData());
rv.设置适配器(rvAdapter);
RVAdapter1_项RVAdapter1=新的RVAdapter1_项(initializeData());
rv1.设置适配器(rvAdapter1);
setText(getTextString(0));
rvAdapter.notifyDataSetChanged();
rvAdapter1.notifyDataSetChanged();
}
私有void init(){
LinearLayout LinearLayout=getActivity().findViewById(R.id.linear);
rv=(RecyclerView)linearLayout.getChildAt(2);
imageStatus=getActivity().findViewById(R.id.imageStatus);
lastImage=getActivity().findViewById(R.id.lastImage);
nextImage=getActivity().findViewById(R.id.nextImage);
rv.setHasFixedSize(真);
setLayoutManager(新的GridLayoutManager(getActivity(),1));
rv1=getActivity().findViewById(R.id.rv1);
rv1.setHasFixedSize(真);
rv1.setLayoutManager(新的GridLayoutManager(getActivity(),2));
}
private ArrayList initializeData(){
ArrayList qorans=新的ArrayList();
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
添加(新数据(“,”,“);
返回qorans;
}
公共字符串getTextString(int i){
如果(i==0){
lastImage.setVisibility(View.INVISIBLE);
}否则{
lastImage.setVisibility(View.VISIBLE);
}
如果(i+1==XMENArray.size()){
设置可见性(视图不可见);
}否则{
设置可见性(View.VISIBLE);
}
返回“عکس”+“”+整数.toString(i+1)+++“از”+“”+整数.toString(XMENArray.size());
}
}
回收适配器
public class RVAdapter_item extends RecyclerView.Adapter<RVAdapter_item.QoranViewHolder> {
private SpringyAdapterAnimator mAnimator;
class QoranViewHolder extends RecyclerView.ViewHolder {
QoranViewHolder(final View itemView) {
super(itemView);
final Context context;
}
}
List<Data> qoranList;
public RVAdapter_item(List<Data> qoren){
this.qoranList = qoren;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
mAnimator = new SpringyAdapterAnimator(recyclerView);
mAnimator.setSpringAnimationType(SpringyAdapterAnimationType.SCALE);
mAnimator.addConfig(85,15);
}
@Override
public QoranViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_info, viewGroup, false);
QoranViewHolder pvh = new QoranViewHolder(v);
mAnimator.onSpringItemCreate(v);
return pvh;
}
@Override
public void onBindViewHolder(QoranViewHolder personViewHolder, int i) {
mAnimator.onSpringItemBind(personViewHolder.itemView, i);
}
@Override
public int getItemCount() {
return qoranList.size();
}
public类RVAdapter\u项扩展了RecyclerView.Adapter{
私人SpringyAdapterAnimator人体模型;
类QoranViewHolder扩展了RecyclerView.ViewHolder{
QoranViewHolder(最终视图项目视图){
超级(项目视图);
最终语境;
}
}
列表qoranList;
公共RVAdapter_项目(列表qoren){
this.qoranList=qoren;
}
@凌驾
附加ToRecyclerView(RecyclerView RecyclerView)上的公共无效{
super.onAttachedToRecyclerView(recyclerView);
mAnimator=新的SpringyAdapterAnimator(recyclerView);
mAnimator.setSpringAnimationType(SpringyAdapterAnimationType.SCALE);
mAnimator.addConfig(85,15);
}
@凌驾
公共QoranViewHolder onCreateViewHolder(视图组视图组,int i){
视图v=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.item_info,viewGroup,false);
QoranViewHolder pvh=新的QoranViewHolder(v);
mAnimator.onSpringItemCreate(v);
返回pvh;
}
@凌驾
BindViewHolder上的公共无效(QoranViewHolder personViewHolder,int i){
mAnimator.onSpringItemBind(personViewHolder.itemView,i);
}
@凌驾
public int getItemCount(){
返回qoranList.size();
}
}
ViewPager活动
public class ShowInfoViewPager extends AppCompatActivity {
List<Fragment> fragments = new ArrayList<>();
ArrayList<Data> list;
int num = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showinfo_viewpager);
list = MainActivity.initializeData();
for (int i=0;i<list.size();i++) {
Bundle bundle = new Bundle();
bundle.putString("title", list.get(i).category_title);
ShowInfo firstFragment = new ShowInfo();
firstFragment.setArguments(bundle);
fragments.add(firstFragment);
}
ViewPager pager = (ViewPager) findViewById(R.id.pager);
ZoomOutTransformation zoomOutTransformation = new ZoomOutTransformation();
pager.setPageTransformer(true, zoomOutTransformation);
final MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
return fragments.get(pos);
}
@Override
public int getCount() {
return fragments.size();
}
}
公共类ShowInfoViewPager扩展了AppCompative活动{
List fragments=new ArrayList();
数组列表;
int num=0;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u showinfo\u viewpager);
list=MainActivity.initializeData();
对于(int i=0;i
在代码行下方移动到片段的“onResume:”方法
你能分享你的代码吗?发布一些代码。好的,我现在就做,我做了,但它不起作用。在onViewCreated中,我检查了适配器和recyclerview的数据集,但它不起作用):
public class ShowInfoViewPager extends AppCompatActivity {
List<Fragment> fragments = new ArrayList<>();
ArrayList<Data> list;
int num = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showinfo_viewpager);
list = MainActivity.initializeData();
for (int i=0;i<list.size();i++) {
Bundle bundle = new Bundle();
bundle.putString("title", list.get(i).category_title);
ShowInfo firstFragment = new ShowInfo();
firstFragment.setArguments(bundle);
fragments.add(firstFragment);
}
ViewPager pager = (ViewPager) findViewById(R.id.pager);
ZoomOutTransformation zoomOutTransformation = new ZoomOutTransformation();
pager.setPageTransformer(true, zoomOutTransformation);
final MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
return fragments.get(pos);
}
@Override
public int getCount() {
return fragments.size();
}
}
RVAdapter_item rvAdapter = new RVAdapter_item(initializeData());
rv.setAdapter(rvAdapter);
RVAdapter1_item rvAdapter1 = new RVAdapter1_item(initializeData());
rv1.setAdapter(rvAdapter1);
imageStatus.setText(getTextString(0));
rvAdapter.notifyDataSetChanged();
rvAdapter1.notifyDataSetChanged();