android 实现有四个点击和滑动效果的fragment界面
时间: 2024-02-12 20:04:01 浏览: 84
安卓Android源码——做了四个界面的滑动功能,设置了每个界面的移动动画操作.zip
你可以使用 ViewPager2 和 TabLayout 来实现带有四个点击和滑动效果的 Fragment 界面。你需要创建一个 Activity,其中包含 ViewPager2 和 TabLayout,然后创建四个 Fragment,每个 Fragment 显示不同的内容。接下来,你需要创建一个 FragmentPagerAdapter 或 FragmentStateAdapter,并将其与 ViewPager2 关联。最后,将 TabLayout 与 ViewPager2 关联,以便用户可以通过点击标签或滑动界面来切换 Fragment。以下是一个示例代码:
MainActivity.java:
```
public class MainActivity extends AppCompatActivity {
private ViewPager2 viewPager2;
private TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager2 = findViewById(R.id.view_pager2);
tabLayout = findViewById(R.id.tab_layout);
List<Fragment> fragmentList = new ArrayList<>();
fragmentList.add(new Fragment1());
fragmentList.add(new Fragment2());
fragmentList.add(new Fragment3());
fragmentList.add(new Fragment4());
viewPager2.setAdapter(new FragmentPagerAdapter(this, fragmentList));
new TabLayoutMediator(tabLayout, viewPager2,
(tab, position) -> tab.setText("Tab " + (position + 1))
).attach();
}
}
```
FragmentPagerAdapter.java:
```
public class FragmentPagerAdapter extends FragmentStateAdapter {
private List<Fragment> fragmentList;
public FragmentPagerAdapter(@NonNull FragmentActivity fragmentActivity, List<Fragment> fragmentList) {
super(fragmentActivity);
this.fragmentList = fragmentList;
}
@NonNull
@Override
public Fragment createFragment(int position) {
return fragmentList.get(position);
}
@Override
public int getItemCount() {
return fragmentList.size();
}
}
```
activity_main.xml:
```
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/view_pager2"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/tab_layout"
app:layout_constraintTop_toTopOf="parent"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
```
你需要在 Fragment1、Fragment2、Fragment3 和 Fragment4 中添加自己的布局和逻辑。例如,以下是 Fragment1 的示例代码:
```
public class Fragment1 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
// 添加自己的布局和逻辑
return view;
}
}
```
阅读全文