Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个相同片段的ViewPager RecyclerView只需在ViewPager的一个片段中加载项_Java_Android_Android Recyclerview - Fatal编程技术网

Java 我有一个相同片段的ViewPager RecyclerView只需在ViewPager的一个片段中加载项

Java 我有一个相同片段的ViewPager RecyclerView只需在ViewPager的一个片段中加载项,java,android,android-recyclerview,Java,Android,Android Recyclerview,当我想在RecyclerView中加载项目时,我有一个带有片段的viewPager,项目只加载在第一个片段RecyclerView中,不加载在其他片段中,但文本视图加载在所有片段中,当我再次返回到前一个项目时,项目加载在该片段的RecyclerView中 我看到了一些解决方案,我让我所有的recyclerView适配器视图都不是静态的,但它仍然不起作用 我用不同的名称、不同的布局名称和不同的id为它的recyclerView制作了其他片段,它可以工作,但我有大量片段,这不是我的解决方案): pu

当我想在RecyclerView中加载项目时,我有一个带有片段的viewPager,项目只加载在第一个片段RecyclerView中,不加载在其他片段中,但文本视图加载在所有片段中,当我再次返回到前一个项目时,项目加载在该片段的RecyclerView中

我看到了一些解决方案,我让我所有的recyclerView适配器视图都不是静态的,但它仍然不起作用

我用不同的名称、不同的布局名称和不同的id为它的recyclerView制作了其他片段,它可以工作,但我有大量片段,这不是我的解决方案):

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();