赞
踩
说明:项目必须运行在Androidx环境下使用
implementation ‘androidx.viewpager2:viewpager2:1.0.0-alpha01’
//tablayout
implementation ‘com.google.android.material:material:1.2.0-alpha01’
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <com.google.android.material.tabs.TabLayout android:id="@+id/tablayout1" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.google.android.material.tabs.TabLayout> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/v2" android:layout_width="match_parent" android:layout_height="match_parent"> </androidx.viewpager2.widget.ViewPager2> </LinearLayout>
public class MainActivity extends AppCompatActivity { private ViewPager2 viewPager2; private ArrayList<Fragment> fragments; private ArrayList<String> titles; private Fragment1 fragment1; private Fragment2 fragment2; private TabLayout tabLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); //设置滑动方向 viewPager2.setOrientation(ViewPager2.ORIENTATION_VERTICAL); //添加适配器 MyFragmentStateAdapter myFragmentStateAdapter = new MyFragmentStateAdapter(this,fragments); viewPager2.setAdapter(myFragmentStateAdapter); //关联TabLayout 添加attach() new TabLayoutMediator(tabLayout, viewPager2, new TabLayoutMediator.TabConfigurationStrategy() { @Override public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) { tab.setText(titles.get(position)); } }).attach(); viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { super.onPageScrolled(position, positionOffset, positionOffsetPixels); } @Override public void onPageSelected(int position) { super.onPageSelected(position); Log.d("amy",position+""); } @Override public void onPageScrollStateChanged(int state) { super.onPageScrollStateChanged(state); } }); } public void init(){ viewPager2 = findViewById(R.id.v2); tabLayout = findViewById(R.id.tablayout1); fragments = new ArrayList<>(); fragment1 = new Fragment1(); fragment2 = new Fragment2(); fragments.add(fragment1); fragments.add(fragment2);//绿 titles = new ArrayList<>(); titles.add("关注"); titles.add("推荐"); } }
public class MyFragmentStateAdapter extends FragmentStateAdapter { private ArrayList<Fragment> fragments; public MyFragmentStateAdapter(@NonNull FragmentActivity fragmentActivity,ArrayList<Fragment> fragments) { super(fragmentActivity); this.fragments = fragments; } @Override public int getItemCount() { return fragments.size(); } @NonNull @Override public Fragment createFragment(int position) { return fragments.get(position); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。