【问题标题】:How to change PageView after change tabs?更改选项卡后如何更改 PageView?
【发布时间】:2020-05-30 16:33:48
【问题描述】:

我立即为我的英语道歉)。我从谷歌找到了一个代码,我将它安装在一个 android studio 上,但代码的结果不是我想要的。当我单击选项卡时,控件从 item1 到 item2 进入另一个(例如,item1、item2、ite3、item4),但 ListViev 元素保持不变。点击tab控件后如何让PageViev元素发生变化?

  final TabLayout tab=findViewById(R.id.tabs);
    final ViewPager viewPager=findViewById(R.id.view_pager);
    tab.removeAllTabs();
    for (int k = 0; k <GoodsGroupList.size(); k++) {
       tab.addTab(tab.newTab().setText("" + GoodsGroupList.get(k)));
    }

    tab.setTabMode(TabLayout.MODE_SCROLLABLE);  
    PlansPagerAdapter adapter = new PlansPagerAdapter(getSupportFragmentManager(), tab.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tab));

Fragment_home.xml

<com.google.android.material.tabs.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000000"
    tools:ignore="MissingConstraints" />

<androidx.viewpager.widget.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="48dp"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_below="@+id/tabs"/>

Fragment_menu.xml

<ListView
    android:id="@+id/ListViewer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@drawable/list_divider"
    tools:ignore="MissingConstraints" />

【问题讨论】:

    标签: android android-studio tabs android-viewpager


    【解决方案1】:

    Tabview does not change tab on touch

    我发现了一个类似的问题,添加了部分代码,5月份问题解决了。

    tab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
                    viewPager.setCurrentItem(tab.getPosition());
                    Log.d("Tab", String.valueOf(tab.getPosition()));
                }
    
                @Override
                public void onTabUnselected(TabLayout.Tab tab) {
    
                }
    
                @Override
                public void onTabReselected(TabLayout.Tab tab) {
    
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多