Fragment

2021-01-27  本文已影响0人  小洋123123

今天查看android官网,发现fragment用法有一些变化,记录一下
1.fragment在androidx中是一个单独依赖的库
implementation "androidx.fragment:fragment:1.2.5"
2.现在使用FragmentContainerView而不再是framelayout

<androidx.fragment.app.FragmentContainerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment_container_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:name="com.example.ExampleFragment" />

3.在fragment初始化的时候传值

<androidx.fragment.app.FragmentContainerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment_container_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
Bundle bundle = new Bundle();
bundle.putInt("some_int", 0);
getSupportFragmentManager().beginTransaction()
//true 可优化事务中涉及的 Fragment 的状态变化,以使动画和过渡正常运行
                .setReorderingAllowed(true)
                .add(R.id.fragment_container_view, ExampleFragment.class, bundle)
                .commit();
class ExampleFragment extends Fragment {
    public ExampleFragment() {
        super(R.layout.example_fragment);
    }

    @Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        int someInt = requireArguments().getInt("some_int");
        ...
    }
}

参考地址:https://developer.android.google.cn/guide/fragments/create

上一篇下一篇

猜你喜欢

热点阅读