在列表视图中单击时更改Viewpager中的选项卡位置

时间:2019-03-30 17:22:25

标签: android listview android-fragments android-viewpager

我已将字符串从片段传递到片段(从列表视图到滑动视图)。但是我的问题是,当我单击列表视图中的一个项目时,它替换了片段,并从选项卡的第一个而不是同一项目转到了viewpager。

此处传递了String,但viewpager选项卡未更改。

我在其中单击项目的Listview片段:

listView.setOnItemClickListener(new OnItemClickListener() {
     @Override
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
         ////
         String text=listView.getItemAtPosition(i).toString();
         Bundle bundle = new Bundle();
         bundle.putString(ID_EXTRA, text);
         // set Fragmentclass Arguments
         SwipeNav fragobj = new SwipeNav();
         fragobj.setArguments(bundle);

         FragmentManager fm=getFragmentManager();
         FragmentTransaction ft = fm.beginTransaction();
         ft.replace(((ViewGroup)(getView().getParent())).getId(), fragobj);
         ft.addToBackStack(null);
         ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
         ft.commit();
     }
 });

在viewpager滑动视图页面上:

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    if (getArguments() != null && !getArguments().isEmpty()) {
        Bundle bundle = this.getArguments();
        String myInt = bundle.getString(ListNavAdapter.ID_EXTRA);

        myPagerAdapter  = new 
MyPagerAdapter(getChildFragmentManager(),getContext());
        viewPager = (ViewPager) view.findViewById(R.id.pager);

    } else {
        myPagerAdapter = new 
MyPagerAdapter(getChildFragmentManager(),getContext());
        viewPager = (ViewPager) view.findViewById(R.id.pager);
    }

    viewPager.setAdapter(myPagerAdapter);

我无法设置代码,因此当我单击列表视图中的项目时,我将能够在Viewpager中获得选项卡的正确位置。我正在将“单个片段”用于Viewpger滑动视图的多个选项卡。

0 个答案:

没有答案